BZOJ-3190-赛车-JLOI2013-暴力枚举
描述
- 这里有一辆赛车比赛正在进行,赛场上一共有N辆车,分别称为个g1,g2……gn。赛道是一条无限长的直线。最初,gi位于距离起跑线前进ki的位置。比赛开始后,车辆gi将会以vi单位每秒的恒定速度行驶。在这个比赛过程中,如果一辆赛车曾经处于领跑位置的话(即没有其他的赛车跑在他的前面),这辆赛车最后就可以得奖,而且比赛过程中不用担心相撞的问题。现在给出所有赛车的起始位置和速度,你的任务就是算出那些赛车将会得奖。
分析
- 暴力枚举每辆车是否可以得奖.
- 计算该车可以领跑的时间区间 [L, R], 初始化 L = 0, R = INF. 每次和另一辆车进行比较, 维护这个区间, 直到所有的车已经比较过或者 L > R.
- 暴力时间复杂度 O(n^2), 但数据没有卡.
#include #include #include using namespace std;
const double INF = 1e18;
const int maxn = 10000 + 10;
int p[maxn], v[maxn];
vectorans;
int main() {
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++) scanf("%d", &p[i]);
for(int i = 1; i <= n; i++) scanf("%d", &v[i]);
for(int i = 1; i <= n; i++) {
bool win = 1;
double L = 0, R = INF;
for(int j = 1; j <= n; j++) {
double x = 0.0, y = INF;
if(v[i] < v[j]) y = (double)(p[i]-p[j]) / (v[j]-v[i]);
else if(v[i] > v[j]) x = (double)(p[j]-p[i]) / (v[i]-v[j]);
else if(p[i] < p[j]) y = -INF;
L = max(L, x);
R = min(R, y);
if(L > R) { win = 0; break; }
}
if(win) ans.push_back(i);
}
int m = ans.size();
printf("%d\n", m);
for(int i = 0; i < m-1; i++) printf("%d ", ans[i]);
printf("%d\n", ans[m-1]);
return 0;
}
BZOJ-3190-赛车-JLOI2013-暴力枚举相关推荐
- bzoj 3190 赛车 半平面交
直接写的裸的半平面交,已经有点背不过模板了... 这题卡精度,要用long double ,esp设1e-20... #include<iostream> #include<cstd ...
- POJ 3174 暴力枚举
思路: 暴力枚举三个点 判一判 搞定 (x1*y1=x2*y2) x1.y1.x2.y2为他们两两的差 //By SiriusRen #include <cstdio> using nam ...
- codeforces数学1600day6[CodeForces - 1029C多区间交+枚举,CodeForces 992C[数学公式推导],CodeForces 992B[质因数分解+暴力枚举]]
A - Maximal Intersection CodeForces - 1029C 题目大意:就是给你n个区间,这n个区间有公共的区间长度为x,现在叫你从这n个区间中删掉一个使得x最大化. 解题思 ...
- 最大字段和 冲出暴力枚举
这篇解题报告是对我最近一些题的总结,里面的代码都是我解题,优化,再优化的过程的记录,记录了自己对算法的完善与优化思路,还有对编程哲学的理解:do it,do it well. 很感谢孙老师您,让自己可 ...
- hdu 4587 TWO NODES 暴力枚举+tarjan
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意是拿掉两个点 求最多可以把整个图分成几个联通块 注意到有一个模板是可以通过找割点来快速求出 ...
- 一道暴力枚举题Win32版本示例
来看一个问题:该问题的解法是 暴力枚举:这大概是ACM方面的:名称叫火柴棒等式: 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴棍拼出的整数( ...
- C. Divisibility by Eight【暴力枚举】
暴力枚举即可.枚举1位这种情况,枚举2位这种情况,枚举3位这种情况. 3位满足足以,其他的4位,5位...都包含1000必定满足. #include<bits/stdc++.h> usin ...
- YBTOJ:灯光控制(贪心)(公倍数)(暴力枚举)
文章目录 题目描述 解析 代码 题目描述 解析 没有想出来 首先可以确定开关要么开一次,要么不动,其他都和这俩是等价的 一开始最先想到的就是贪心的方法,每个开关遍历,如果按下会使答案变好就按下. 但是 ...
- array专题2---理解暴力枚举与动态规划
746 Min Cost Climbing Stairs 一直以后对暴力枚举(又称:深度优先搜索)和动态规划不太理解,不能明白个中区别,更别说贪心.今天做这道题目的时候有点心得. 思路一:看到题目,直 ...
- 【POJ - 2965】The Pilots Brothers' refrigerator(暴力枚举,思维)
题干: The game "The Pilots Brothers: following the stripy elephant" has a quest where a play ...
最新文章
- 揭秘:1.2亿美元光刻机内部视频曝光,像科幻片一样震撼!
- RecyclerView
- python反射和高阶内置方法
- 每天一道LeetCode-----寻找两个链表的交点
- Linux下搭建yum服务器
- fprintf函数的用法matlab_极力推荐这个Matlab教程
- Python基础教程笔记——条件,循环和其他语句
- Joomla源代码解析(十九) JController
- 排错万能金钥匙之Linux系统应用
- 网站搭建教程(怎么建网站详细步骤)
- UiPath Excel 复制粘贴
- js 数组按奇偶拆分_js数组拆分问题
- 这个地方沸腾,高手争雄,至尊大决战,从天上杀到地下,又从地上打到云霄上!
- 《2022-移动端游戏版号申请详解》
- GNSS差分码偏差(DCB)文件下载
- 做自媒体1年投资4百W亏损370W,自媒体的水太深
- 前端入门教程(四)head内常用标签与body内常用标签
- 加路由时提示Network is unreachable的一种解决方法
- html页面和手机比例一致 一比一自适应 Mixed Content: The page at ‘xxx‘ was loaded over HTTPS, but requested an insec
- 积分和微分电路结构原理带Multisim仿真
热门文章
- 云炬随笔20210930
- 【附源码】一看就懂的感知机算法PLA
- 最大期望算法与混合高斯模型的推导
- Matconvnet安装:win7+VS2015(pro)+Matlab 2017a+cuda8.0+cudnn 5.1
- matlab中的分类器使用小结(SVM、KNN、RF、AdaBoost、Naive Bayes、DAC)
- c++与Delphi中的类型转换
- 23种设计模式C++源码与UML实现--外观模式
- 平时学习中的拙作,希望交更多的朋友,希望得到更多的指导和交流
- Linux 0.11 实验环境搭建
- Ubuntu系统rm命令删除文件没有提示,怎么办?