Codeforces 595D - Max and Bike
思路:开始和结束时的计时器的高度相同时(也就是关于圆竖着直径对称)时间最少。
证明:
总距离为d.
圆周长为s=2*π*r.
设len=d-floor(d/s)*s.
len=θ1*r+θ2*r+sin(θ1)*r+sin(θ2)*r.
要使sin(θ1)*r+sin(θ2)*r尽可能大,或者说θ1*r+θ2*r尽可能小。
根据和差化积公式的
sin(θ1)+sin(θ2)=2*sin((θ1+θ2)/2)*cos((θ1-θ2)/2)
(θ1-θ2)越趋近与0,值越大。
所以θ1=θ2=θ
所以变量只剩下一个变量θ了,而且函数是单调的,所以二分解三角函数。

代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
#define pi acos(-1.0)
#define pii pair<int,int>
#define mem(a,b) memset(a,b,sizeof(a))
#define MAX(a,b,c) max(a,max(b,c)) const int INF=0x7f7f7f7f;
const int MOD=1e9+;
const double eps=1e-; int main()
{
/*ios::sync_with_stdio(false);
cin.tie(0);*/
int n,r,v;
scanf("%d%d%d",&n,&r,&v);
double s=pi*r*;
while(n--)
{
int a,b;
scanf("%d%d",&a,&b);
double d=b-a;
int c=(d/s);
double len=d-c*s;
double L=,R=len;
double mid=(L+R)/;
while(R-L>=eps)
{
if(mid+*r*sin(mid//r)>=len)R=mid;
else L=mid;
mid=(L+R)/;
}
printf("%.12lf\n",(c*s+mid)/v);
}
return ;
}
Codeforces 595D - Max and Bike的更多相关文章
- Codeforces Round #330 (Div. 2)D. Max and Bike 二分 物理
D. Max and Bike Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/probl ...
- Codeforces Round #330 (Div. 2) D. Max and Bike 二分
D. Max and Bike For months Maxim has been coming to work on his favorite bicycle. And quite recently ...
- Codeforces 1083C Max Mex [线段树]
洛谷 Codeforces 思路 很容易发现答案满足单调性,可以二分答案. 接下来询问就转换成判断前缀点集是否能组成一条链. 我最初的想法:找到点集的直径,判断直径是否覆盖了所有点,需要用到树套树,复 ...
- Codeforces 1083C Max Mex
Description 一棵\(N\)个节点的树, 每个节点上都有 互不相同的 \([0, ~N-1]\) 的数. 定义一条路径上的数的集合为 \(S\), 求一条路径使得 \(Mex(S)\) 最大 ...
- Codeforces 938E Max History:排列 + 逆元【考虑单个元素的贡献】
题目链接:http://codeforces.com/problemset/problem/938/E 题意: 定义f(a): 初始时f(a) = 0, M = 1. 枚举i = 2 to n,如果a ...
- 2018.12.12 codeforces 938E. Max History(组合数学)
传送门 唉最开始居然把题给看错了. 其实是组合数学傻逼题呢. 题意简述:给出一个数列,定义一个与数列有关的fff函数,fff函数定义如下: 首先f=0,M=1f=0,M=1f=0,M=1,一直重复如下 ...
- CodeForces 938E Max History 题解
参考自:https://blog.csdn.net/dreaming__ldx/article/details/84976834 https://blog.csdn.net/acterminate/a ...
- 【Codeforces 1083C】Max Mex(线段树 & LCA)
Description 给定一颗 \(n\) 个顶点的树,顶点 \(i\) 有点权 \(p_i\).其中 \(p_1,p_2,\cdots, p_n\) 为一个 \(0\sim (n-1)\) 的一个 ...
- cf Round 594
A.Warrior and Archer(思维) 战士一定会ban掉当前边缘的位置.而战士和射手就会选择剩下的最远的两点.我们让剩下的最远的两点最近就达到了均衡.于是我们枚举战士ban掉的边缘,ban ...
随机推荐
- sql中字符串如何比大小
从字符串的第一个字符开始比较ASSCII码值,如果相等则看下一个,以此类推. 数字的ASCII码<大写字母的ASCII码<小写字母的ASCII码. ASCII码
- Java8函数接口实现回调及Groovy闭包的代码示例
本文适用于想要了解Java8 Function接口编程及闭包表达式的筒鞋. 概述 在实际开发中,常常遇到使用模板模式的场景: 主体流程是不变的,变的只是其中要调用的具体方法. 其特征是: Begi ...
- python 命令执行文件传递参数
import os,sys for root,dirs,files in os.walk(sys.argv[1]): for name in files: print(os.path.join(roo ...
- Scrapy: 初识Scrapy
1.初识Scrapy Scrapy是为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或者存储历史数据等一系列的程序中. 2.选择一个网站 当需要从某个网站获取信息时, ...
- 基于Axis1.4的webservice接口开发(环境搭建)
基于Axis1.4的webservice接口开发(环境搭建) 一.环境搭建: 1.搜索关键字“Axis1.4”下载Axis1.4相关的jar包. 下载地址:http://download.csdn.n ...
- Hive 复制分区表和数据
1. 非分区表: 复制表结构: create table new_table as select * from exists_table where 1=0; 复制表结构和数据: create tab ...
- linux常用命令:which 命令
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置 ...
- html5设置全屏模式--开发游戏必备
<!-- uc强制竖屏 --> <meta name="screen-orientation" content="portrait"> ...
- python练习题-写一个函数,打印所有包含copy方法的内置对象
代码: #encoding=utf-8for i in dir(__builtins__): #print "i:",i try: #这里的i是个字符串,并不能直接用d ...
- python 代码覆盖率 coverage用法
先装coverage: D:\test_python\e8_test>pip install coverageCollecting coverage Downloading https://f ...