NOIP 考前 计算几何练习
BZOJ 1580
直接解析算出每段的时间然后模拟即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
#include <cmath>
#define Pa pair<double,double>
#define mp make_pair
#define pb push_back
#define se second
#define fi first using namespace std;
const int Maxn=;
const int Inf=0x3f3f3f3f;
int n,R,X,Y,Vx,Vy,P[Maxn],Q[Maxn],Vp[Maxn],Vq[Maxn],Ans;
vector<Pa> V;
inline int Sqr(int x) {return x*x;}
inline double Max(double x,double y) {return x>y?x:y;}
int main()
{
// freopen("c.in","r",stdin);
scanf("%d%d%d%d%d%d",&n,&R,&X,&Y,&Vx,&Vy);
for (int i=;i<=n;i++)
{
scanf("%d%d%d%d",&P[i],&Q[i],&Vp[i],&Vq[i]);
P[i]-=X,Q[i]-=Y,Vp[i]-=Vx,Vq[i]-=Vy;
}
for (int i=;i<=n;i++)
if (Vp[i]== && Vq[i]==)
{
if (Sqr(P[i])+Sqr(Q[i])<=Sqr(R))
V.pb(mp(,Inf));
} else
{
double Dis=-(P[i]*Vp[i]+Q[i]*Vq[i])/sqrt((Sqr(Vp[i])+Sqr(Vq[i])));
if (R*R>=(double)Sqr(P[i])+(double)Sqr(Q[i])-Dis*Dis)
{
double tmp=sqrt(R*R-Sqr(P[i])-Sqr(Q[i])+Dis*Dis);
V.pb(mp(Max(Dis-tmp,0.0)/sqrt(Sqr(Vp[i])+Sqr(Vq[i])),(Dis+tmp)/sqrt(Sqr(Vp[i])+Sqr(Vq[i]))));
}
} sort(V.begin(),V.end());
priority_queue<double> T; for (int i=;i<V.size();i++)
{
T.push(-V[i].se);
while (!T.empty() && -T.top()<V[i].fi) T.pop();
Ans=Max(Ans,T.size());
}
printf("%d\n",Ans);
return ;
}
BZOJ 1580
NOIP 考前 计算几何练习的更多相关文章
- NOIP考前划水
NOIP考前划水 君指先跃动の光は.私の一生不変の信仰に.唯私の超電磁砲永世生き! 要开始背配置了? 3行不谢. (setq c-default-style "awk") (glo ...
- NOIP考纲总结+NOIP考前经验谈
首先来一张图,很直观(截止到2012年数据) 下面是收集的一些,我改了一下 红色加粗表示特别重要,必须掌握 绿色加粗表示最好掌握,可能性不是很大,但是某些可以提高程序效率 高精度 a.加法 b.减法 ...
- noip考前注意事项
明天就要离开学校,后天的现在Day1已经考完啦,临近考试了紧不紧张呢(不紧张才怪),那么考前我们应该注意点什么呢? 1.带好自己的证件,带好自己的证件,带好自己的证件,这很重要. 2.试机的时候一定要 ...
- NOIP考前知识点整理
前言:距离NOIP还有不到一百天(虽然NOIP没了),为了整理一下所学的内容,才有了这篇博文.本文内容无特殊说明全部来自于博主的博客,代码也都是新敲的,努力在个人的码风基础上做到尽量简洁,求资瓷. 一 ...
- NOIP 考前研究
NOIP 2017 试题研究 D1T1 小凯的疑惑 (45 min) 看到题面,大概是推数学公式. 先打暴力表,观察 \(a,b\) 与 \(n\) 的关系.猜想 \(a×b−a−b\). 引理:对于 ...
- 【NOIP考前模拟赛】纯数学方法推导——旅行者问题
一.写在前面 这题似乎是一道原创题目(不是博主原创),所以并不能在任何OJ上评测,博主在网盘上上传了数据(网盘地址:http://pan.baidu.com/s/1mibdMXi),诸位看官需者自取. ...
- NOIP 考前 队列复习
BZOJ 1127 #include <cstdio> #include <cstring> #include <iostream> #include <al ...
- NOIP 考前 数论复习
POJ 2891 x=r1 (mod a1) x=r2 (mod a2) x=a1*x+r1,x=a2*y+r2; a1*x-a2*y=r2-r1; 用Extend_Gcd求出m1*x+m2*y=d; ...
- NOIP 考前 数据结构复习
BZOJ 1455 左偏树即可 #include <cstdio> #define LL long long ; struct Info{LL l,r,v,Dis;}Tree[Maxn]; ...
随机推荐
- Python’s SQLAlchemy vs Other ORMs[转发 2]Storm
Storm Storm is a Python ORM that maps objects between one or more databases and Python. It allows de ...
- web工程关于500错误
昨天一直被一个诡异问题困扰,解决了之后开心得的我连玩了一下午,哈哈哈哈哈哈哈哈-- 具体问题是这样的额,本地跑的贼正常,一发到测试服务器就报500错误,具体错误信息是. HTTP Status 50 ...
- jQuery 点击显示再次点击隐藏
<html> <head> <script type="text/javascript" src="/jquery/jquery.js&qu ...
- PDF 补丁丁 0.5.0.1816 测试版发布:新界面新体验
新的测试版简化了界面,操作更直观,同时修复了旧版本的一些错误. 欢迎各位下载测试文件试用,并提出宝贵意见.
- daydayup3 codeforces144C
上古的c还是很简单的,一直逗比忘记加EOF了,直到看了数据才发现 题意:给你两个字符串a,b,求问字符串a里有多少个子串排列后可以生成字符串b,‘?’可以替换为任意小写字母 思路:统计第一个子字符串小 ...
- Android Fragment的使用
定义 Fragment可以理解成一个迷你型的活动,同样可以包含布局,同样有自己的生命周期.比Activity要轻量级,在程序内部做界面跳转要比Activity快的多. 静态添加 Fragment可以静 ...
- python学习——将while循环改成函数
笨办法学python第33节 这一节主要学习内容是while循环,记录内容为将while改成函数,首先源代码如下: i = 0 numbers = [] while i < 6: print & ...
- JavaScript中的作用域
很多(JavaScript)开发者都在讨论"作用域",但它是什么?它们在JavaScript中的任何地方!我发现很多年轻的开发者不知道作用域是什么.他们中大多数人可以用jQuery ...
- 写入标题使用依赖注入Title的setTitle方法
1. 声明 Generator的声明方式类似一般的函数声明,只是多了个*号,并且一般可以在函数内看到yield关键字 function* showWords() { yield 'one'; yiel ...
- 修改Oracle监听端口
修改oracle监听端口 修改端口号的整体步骤:1.1 查看当前监听的状态1.2 停止监听1.3 修改监听文件的端口号1.4 修改初始化参数local_listener1.5 重启 ...