[FJSC2014]滑行
【题目描述】
首长NOI惨跪,于是去念文化课了。现在,他面对一道物理题。
现在有一个小滑块可以在地面上滑行,地面上被划分成不同的区域,使得小滑块在不同的区域内部有一个不同的速度上限。
小滑块在(0,0)点,我们现在要推动小滑块到目标点(x,y)。
地面上有N层区域,每层区域都是矩形。现在给你一个序列{hi}表示每层区域的高度,覆盖的地面横坐标范围是0~x,第i个区域的限速是vi。
注:y=Σhi,其它的地方小滑块不允许进入。
现在我们要设计一个路线使得小滑块滑到目标点的用时最小。
【输入格式】
第一行两个整数,分别表示N,x。
第二行N个整数,第i个数表示hi。
第三行N个整数,第i个数表示vi。
【输出格式】
一行一个整数,表示最小用时,保留到小数点后第三位。
【样例输入】
1 5
5
1
【样例输出】
7.071
【数据范围】
N<=100,x<=1000,对于任意i:1<=i<N,有vi<vi+1
Solution
由于我以前查过费马原理,光路最速,所以就。。。。。。
就是一个二分,注意arcsin(x)中的|x|<=1,所以要把它倒着做。
#include<cstdio>
#include<cmath>
int n,m,h[],v[];
double l,r,pi=3.14159265359,mid,t;
bool check(double a)
{
double x=,tmp;t=;
for(int i=;i<=n;i++)
{
x+=(tmp=h[i]*tan(a));
t+=sqrt(h[i]*h[i]+tmp*tmp)/v[i];
a=asin(v[i+]*sin(a)/v[i]);
}
return x>m;
}
int main()
{
scanf("%d%d",&n,&m);int i;
for(i=n;i;i--)scanf("%d",&h[i]);
for(i=n;i;i--)scanf("%d",&v[i]);
for(l=,r=pi/,i=;i<=;i++,check(mid=(l+r)/)?r=mid:l=mid);
printf("%.3lf\n",t);
}
[FJSC2014]滑行的更多相关文章
- [BZOJ3696][FJSC2014]化合物(异或规则下的母函数)
题目:http://hzwer.com/3708.html 分析: 类似树分治思想,设f[x][i]表示以x为根的子树的所有点中,与x的距离为i的点有多少个,这个可以预处理出来 然后我们考虑每颗子树对 ...
- BZOJ3695 滑行
转化模型就变成几层折射率不同的玻璃光要怎么走才能从(0, 0)到(x, y) 我们发现第一次光线射出去的角度确定,之后光的行程是确定的 而且角度和最后到达y时的x成正相关,于是可以二分! 然后物理学学 ...
- [FJSC2014]化合物
[题目描述] 首长NOI惨跪,于是去念文化课了.现在,他面对一道化学题. 这题的来源是因为在一个奇怪的学校两个化竞党在玩一个奇怪的博弈论游戏,这个游戏很蛋疼,我相信你们也没有兴趣听. 由于这个游戏涉及 ...
- [FJSC2014]圈地
[题目描述] 2维平面上有n个木桩,黄学长有一次圈地的机会并得到圈到的土地,为了体现他的高风亮节,他要使他圈到的土地面积尽量小.圈地需要圈一个至少3个点的多边形,多边形的顶点就是一个木桩,圈得的土地就 ...
- [FJSC2014]异或之
[题目描述] 给定n个非负整数A[1], A[2], ……, A[n]. 对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这样共有n ...
- [FJSC2014]折线统计
[题目描述] 二维平面上有n 个点(xi, yi),现在这些点中取若干点构成一个集合S,对它们按照x 坐标排序,顺次连接,将会构成一些连续上升.下降的折线,设其数量为f(S).如下图中,1->2 ...
- 移动web基本知识
1.pixel像素基础 1.px:csspixel 逻辑像素,浏览器所使用的抽象单位 2.dp,pt:设备无关像素 3.devicePixelPatio 设备像素缩放比例 2.viewport 1. ...
- 在配有英特尔® Iris™ 显卡的系统上通过优化对 Just Cause 3 进行增强
高端 PC 继续通过高性能显卡驱动桌面游戏. 一流的"梦想机器"基于第六代智能 英特尔® 酷睿™ 处理器i7-6700K等 CPU,通常与高端独立显卡配合使用以运行要求最严苛的游戏 ...
- iOS--手势之谜
原文转至: http://www.cnblogs.com/huangjianwu/p/4675648.html iOS在手机APP的手势操作中包含了:拖动.捏合.旋转.点按.长按.轻扫.自定义等等,详 ...
随机推荐
- 使用ROW_NUMBER进行的快速分页
DECLARE @pageSize INT ; DECLARE @pageIndex INT ; SET @pageSize = 5 SET @pageIndex =2 ; --第二页,每页显示5条数 ...
- MVC中,查询以异步呈现,分页不用异步的解决方案
MVC中,查询以异步呈现,分页不用异步的解决方案 这种需求,用一个ASPX页面和一个ASCX分部视图就可以解决了,ASPX提供对ASCX的引用,ASCX显示列表信息,ASPX主页面提供查询功能 < ...
- 免费vpn
http://www.freevpnmac.com/macvpn/ 下边有个滑动解锁,拖动鼠标至右边解锁,点击Get vpn info,得到vpn地址ip和用户密码. 我用安卓手机测试了下完全可以,但 ...
- UiTextField对输入的长度进行限制并提示用户还可输入的长度
最近想做用户昵称的限制,但是网上百度了很多方法效果都不是我自己想要的,终于找到种方法 如下: 1.声明两个属性 nickname是昵称的textfleld canEditSizeLAbel是提示用户剩 ...
- jQuery弹性滑块导航
曾起何时在某网站上看到一弹性滑块导航的效果,瞬间被些效果吸引,开始以为是用FLASH实现的,但查源代码发现用的是JQuery缓动效果. 今天心血来潮想拿这个效果练练手.也看看这段时间学习JS及jque ...
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
题目描述 Cainiao is a university student who loves ACM contest very much. It is a festival for him once ...
- LAMP 环境 快速安装
(一)安装Apache 1.下载安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yum install zlib-devel -y wget http://m ...
- 转(sphinx 多索引使用 方法 )
1 http://blog.csdn.net/adparking/article/details/7080278 文章不错 总结 1.索引合并问题,前面已经解释过,两个索引合并时,都要读入,然后还要 ...
- ubuntu mint 开机启动项管理
使用工具 sysv-rc-conf,需要安装. 点击打开链接http://blog.chinaunix.net/uid-21516619-id-1825027.html
- Make Ubuntu 14.04 Fullscreen and virtualbox
sudo apt-get remove libcheese-gtk23 sudo apt-get install xserver-xorg-core sudo apt-get install virt ...