[BZOJ 1857] 传送带
Link:
Solution:
首先中间的两个拐点$C,D$肯定都在传送带$A,B$上
接下来感性发现固定点A/C,另一个点C/D时间随位置的变化为单峰函数
这样就是三分套三分了
严谨的证明还不会啊……
目前好像只能推出仅有一个零点,不过不太会证单调性啊……
Code:
- #include <bits/stdc++.h>
- using namespace std;
- #define X first
- #define Y second
- typedef long long ll;
- typedef double db;
- typedef pair<db,db> P;
- const db eps=1e-;
- P A,B,C,D,L,R;db p,q,r;
- void read(P &t){scanf("%lf%lf",&t.X,&t.Y);}
- db dist(P a,P b){return sqrt((a.X-b.X)*(a.X-b.X)+(a.Y-b.Y)*(a.Y-b.Y));}
- db check(db rat)
- {
- R=P(C.X+(D.X-C.X)*rat,C.Y+(D.Y-C.Y)*rat);
- return dist(R,D)/q+dist(L,R)/r;
- }
- db solve(db rat)
- {
- L=P(A.X+(B.X-A.X)*rat,A.Y+(B.Y-A.Y)*rat);
- db l=,r=;
- while(fabs(l-r)>eps)
- {
- db lm=l+(r-l)/3.0,rm=r-(r-l)/3.0;
- if(check(lm)<check(rm)) r=rm; else l=lm;
- }
- return dist(A,L)/p+check((l+r)/2.0);
- }
- int main()
- {
- read(A);read(B);read(C);read(D);
- scanf("%lf%lf%lf",&p,&q,&r);
- db l=,r=;
- while(fabs(l-r)>eps)
- {
- db lm=l+(r-l)/3.0,rm=r-(r-l)/3.0;
- if(solve(lm)<solve(rm)) r=rm; else l=lm;
- }
- printf("%.2lf",solve((l+r)/2.0));
- return ;
- }
[BZOJ 1857] 传送带的更多相关文章
- BZOJ 1857 传送带 (三分套三分)
在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...
- BZOJ 1857: [Scoi2010]传送带
二次联通门 : BZOJ 1857: [Scoi2010]传送带 /* BZOJ 1857: [Scoi2010]传送带 三分套三分 可能是吧..dalao们都说明显是一个单峰函数 可是我证不出来.. ...
- bzoj 1857: [Scoi2010]传送带 三分
题目链接 1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 934 Solved: 501[Submit][Stat ...
- Bzoj 1857: [Scoi2010]传送带(三分套三分)
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...
- 传送带(bzoj 1857)
Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度 ...
- BZOJ 1857: [Scoi2010]传送带(三分套三分)
Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2549 Solved: 1370 [Submit][Status][Discuss] Descriptio ...
- 【BZOJ 1857】【SCOI 2010】传送带
三分套三分,虽然简单,但是也得掌握,,, 时间复杂度$O(log_{1.5}^2 n)$ 一开始WA好几次发现是快速读入里没有return,这样也能过样例?_(:3J∠)_ #include<c ...
- bzoj 1857
三分,对于单凸的函数(单调的也可以),可以找出最值. 这道题可以感性认识一下...... /****************************************************** ...
- bzoj 1857 三分套三分
题目大意 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...
随机推荐
- SQL语句中的单引号处理以及模糊查询
为了防止程序SQL语句错误以及SQL注入,单引号必须经过处理.有2种办法: 1.使用参数,比如SELECT * FROM yourTable WHERE name = @name; 在C#中使用Sql ...
- Python-字符串处理 str.format()
Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式.Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的. 另外python还有一个更强大的字符串处理函数 st ...
- GDB实战
程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪.到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码中适当的位置插入 printf ,执行程序并分析打 ...
- linux下实现在程序运行时的函数替换(热补丁)【转】
转自:http://www.cnblogs.com/leo0000/p/5632642.html 声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术 ...
- python基础===继承
编写类时,并非总是要从空白开始.如果你要编写的类是另一个现成类的特殊版本,可使用继承.一个类继承另一个类时,它将自动获得另一个类的所有属性和方法:原有的类称为父类,而新类称为子类.子类继承了其父类的所 ...
- centos 安装flash
linux系统中安装flash插件 linux中安装flashplayer插件的简单方法: 1.下载其中最新版本的播放器,下载地址: http://get.adobe.com/cn/flashplay ...
- 广度优先搜索--POJ迷宫问题
Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, ...
- 1833: [ZJOI2010]count 数字计数——数位dp
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1833 省选之前来切一道裸的数位dp.. 题意 统计[a,b]中0~9每个数字出现的次数(不算 ...
- Canvas 高级
一.Canvas 高级 1.变换--位移 translate(x, y) 2.变换-缩放 scale(xS, yS) 3.变换-旋转 rotate(弧度) 4.环境的保存和释放 save() rest ...
- 关于进度管理工具Gantt图
关于进度管理工具Gantt图 18.以下关于进度管理工具图的叙述中,不正确的是( D). A.能清晰地表达每个任务的开始时间.结束时间和持续时间 B.能清晰地表达任务之间的并行关系 C.不能清晰地确定 ...