【SCOI 2010】传送带
为了方便,我们不妨设$\rm P \lt Q,R$
我们发现,有$\rm E$点在$\rm AB$上,$\rm F$点在$\rm CD$上,最优解一定是$\rm AE\rightarrow EF\rightarrow FD$,因为若中途离开某个传送带再回来,显然是不优的。
考虑固定点$E$,观察点$F$对答案造成的影响。
作过点$\rm E$作$\rm EG \perp CD$。
若$\rm F$在$\rm CG$上,单调性很显然。
若$\rm F$在$\rm GD$上,朝$\rm D$移动时。
由于$\rm |FD|$在减少,而$\rm |EF|$在增加,且越增加越快,所以$\rm |FD| + |EF|$会先减少,后增加。
所以当$\rm E$点固定的时候,$\rm AE\rightarrow EF\rightarrow FD$的长度是个凹的单峰函数,我们可以用三分解决。
我们可以先三分$E$,再三分$F$来解决这题。什么?证明?我真的不会。
至于三分的时候怎么选坐标,可以按照端点横坐标纵坐标直接取$\frac{1}{3}$。
比如下图我们要找到$\rm CB$的$\frac{1}{3}$处,直接是$\rm B$和$\rm C$横坐标纵坐标分别三分之一即可。
明显有$\rm \triangle ABC\sim \triangle BDE$
所以$\rm D$点也在线段的$\frac{1}{3}$
#include <bits/stdc++.h> using namespace std; const double eps = 1e-; double x[], y[], p, q, r; double dist(double xa, double ya, double xb, double yb) {
return sqrt((xa - xb) * (xa - xb) + (ya - yb) * (ya - yb));
} double check(double ex, double ey) {
double lx = x[], ly = y[], rx = x[], ry = y[];
while(fabs(rx - lx) > eps || fabs(ry - ly) > eps) {
double m1x = lx + (rx - lx) / , m1y = ly + (ry - ly) / ,
m2x = rx - (rx - lx) / , m2y = ry - (ry - ly) / ;
if(dist(ex, ey, m1x, m1y) / r + dist(m1x, m1y, x[], y[]) / q <
dist(ex, ey, m2x, m2y) / r + dist(m2x, m2y, x[], y[]) / q)
rx = m2x, ry = m2y;
else lx = m1x, ly = m1y;
}
return dist(ex, ey, lx, ly) / r + dist(lx, ly, x[], y[]) / q;
} int main() {
for(int i = ; i < ; i++) cin >> x[i] >> y[i];
cin >> p >> q >> r;
double lx = x[], ly = y[], rx = x[], ry = y[];
while(fabs(rx - lx) > eps || fabs(ry - ly) > eps) {
double m1x = lx + (rx - lx) / , m1y = ly + (ry - ly) / ,
m2x = rx - (rx - lx) / , m2y = ry - (ry - ly) / ;
if(dist(x[], y[], m1x, m1y) / p + check(m1x, m1y) <
dist(x[], y[], m2x, m2y) / p + check(m2x, m2y))
rx = m2x, ry = m2y;
else lx = m1x, ly = m1y;
}
printf("%.2lf\n", dist(x[], y[], lx, ly) / p + check(lx, ly));
return ;
}
【SCOI 2010】传送带的更多相关文章
- [SCOI 2010]传送带
Description 题库链接 在一个 \(2\) 维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段 \(AB\) 和线段 \(CD\) .在 \(AB\) 上的移动速度为 ...
- SCOI 2010 连续攻击游戏(贪心,图论)
SCOI 2010 连续攻击游戏 solution 直接就硬刚 我愿称贪心为暴力 因为题目中要求一定从小到大贪心,那么当前点的下标有能够选取的较大点,那么它一定可以和前面的一个较小点连接,所以可以直接 ...
- #10017 传送带(SCOI 2010)(三分套三分)
[题目描述] 在一个 2 维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段 AB 和线段 CD.lxhgww 在 AB上的移动速度为 P ,在 CD 上的移动速度为 Q,在平 ...
- 【BZOJ 1857】【SCOI 2010】传送带
三分套三分,虽然简单,但是也得掌握,,, 时间复杂度$O(log_{1.5}^2 n)$ 一开始WA好几次发现是快速读入里没有return,这样也能过样例?_(:3J∠)_ #include<c ...
- [SCOI 2010] 股票交易
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1855 [算法] 单调队列优化动态规划 [代码] #include<bits/s ...
- SCOI 2010 序列操作
题目描述 lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b ...
- [SCOI 2010]字符串
Description lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还要求在组成的字符串中,在任意的前k个字符中,1的个数不能少于0的个数.现在lxhgw ...
- 解题:SCOI 2010 序列操作
题面 线段树......模板题(雾? 然而两种标记会互相影响,必须保证每次只放一个(不然就不知道怎么放了),具体的影响就是: 翻转标记会使得覆盖标记一起翻转,下放的时候就是各种swap 覆盖标记会抹掉 ...
- Scoi 2010 幸运数字
[题目描述]在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”!但是这种“幸 ...
随机推荐
- cms-后台eazyui搭建
1.引入eazyUi需要的js 2.布局:上.下.左.中 <%@ page language="java" contentType="text/html; char ...
- 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
我的前一篇文章 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数介绍了在SAP云平台的Neo环境下如何通过SAP Cloud Conne ...
- 知名nodeJS框架Express作者宣布弃nodeJS投Go
知名 nodeJS 框架 Express 的作者 TJ Holowaychuk 在 Twitter 发推并链接了自己的一篇文章,宣布弃 nodeJS 投 Go. 他给出的理由是:Go 语言和 Rust ...
- POJ 2392 Space Elevator(多重背包)
显然塔的总高度不会超过最大的a[i],而a[i]之前的可以到达的高度 是由a值更小的块组成,所以按照a从小到大的顺序去转移. 然后就是多重背包判断存在性了,几乎和coin那题一样. 数据没coin丧病 ...
- Luogu [P1334] 瑞瑞的木板(手写堆)
其实这个题完全不需要用手写堆,只需要一遍遍sort就行了…… 但是! 为了练习手写堆,还是用手写堆做了. 在做本题之前,如果你没有什么思路的话,建议先做Luogu的合并果子. 好,假设你已经做过了合并 ...
- C# FileInfo 类
FileInfo类不像File类,它没有静态方法,仅可用于实例化的对像.FileInfo对像表示在磁盘或网络位置的文件,注意它不是流,为了读写文件,必须创建Stream对像. fileInfo类提供了 ...
- Node第二天
一.http模块: 步骤一:创建http服务器 const https = require('https'); 步骤二:const fs = require('fs'); 步骤三:创建请求=> ...
- HTTP-点开浏览器输入网址背后发生的那点事
前言 Internet最早来源于美国国防部ARPANet,1969年投入运行,到现在已有很长一段路了,各位想要了解发展史可以百度下,这里就不多说了. 现如今当我们想要获取一些资料,首先是打开某个浏览器 ...
- 课时21.img标签(掌握)
1.img标签中的img其实是英文image的缩写,所以img标签的作用,就是告诉浏览器我们需要显示一张图片 2.img标签格式:<img src=" "> img是 ...
- LA_3942 LA_4670 从字典树到AC自动机
首先看第一题,一道DP+字典树的题目,具体中文题意和题解见训练指南209页. 初看这题模型还很难想,看过蓝书提示之后发现,这实际上是一个标准DP题目:通过数组来储存后缀节点的出现次数.也就是用一颗字典 ...