Codeforces 595D - Max and Bike】的更多相关文章

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)越趋…
D. Max and Bike Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/problem/D Description For months Maxim has been coming to work on his favorite bicycle. And quite recently he decided that he is ready to take part in a cy…
D. Max and Bike For months Maxim has been coming to work on his favorite bicycle. And quite recently he decided that he is ready to take part in a cyclists' competitions. He knows that this year n competitions will take place. During the i-th competi…
洛谷 Codeforces 思路 很容易发现答案满足单调性,可以二分答案. 接下来询问就转换成判断前缀点集是否能组成一条链. 我最初的想法:找到点集的直径,判断直径是否覆盖了所有点,需要用到树套树,复杂度\(O(n\log^3n)\),应该过不了. 有一个性质:两条链可以合并,当且仅当能从四个端点中找到两个作为新端点,另外两个在新的链上. 还有一个性质:点\(x\)在\((u,v)\)这条链上,当且仅当\((lca(x,u)=x||lca(x,v)=x)\&\&lca(x,y)=y\),其…
Description 一棵\(N\)个节点的树, 每个节点上都有 互不相同的 \([0, ~N-1]\) 的数. 定义一条路径上的数的集合为 \(S\), 求一条路径使得 \(Mex(S)\) 最大. 带修改, \(M\) 次查询 Solution 用一棵权值线段树维护. 节点 \([L,R]\)存储信息:是否有一条路径包含 \([L,R]\) 内的所有数 以及 路径两个端点. 合并两个区间: 在\(4\)个点中 枚举新路径的端点, 然后判断另外两个点是否在路径上即可. 正解能 \(O(1)\…
题目链接:http://codeforces.com/problemset/problem/938/E 题意: 定义f(a): 初始时f(a) = 0, M = 1. 枚举i = 2 to n,如果a[i] > a[M],那么f(a) += a[M], M = i. 给定长度为n的数组a,问你它的所有排列的f(a)之和 MOD 1e9+7. 题解: 对于某个确定排列中的一个数a[i],如果所有大于等于a[i]的数都排在a[i]之后,那么一定ans += a[i]. 所以就要求每个a[i]对于答案…
传送门 唉最开始居然把题给看错了. 其实是组合数学傻逼题呢. 题意简述:给出一个数列,定义一个与数列有关的fff函数,fff函数定义如下: 首先f=0,M=1f=0,M=1f=0,M=1,一直重复如下操作:在222~nnn中找到第一个比aMa_MaM​大的aia_iai​,然后f+=aM,M=if+=a_M,M=if+=aM​,M=i 求该数列n!n!n!个排列的fff函数之和. 这题一看就是统计每个数对答案的贡献次数. 具体说说就是看每个数在哪些排列中能有贡献. 于是考虑aia_iai​的贡献…
参考自:https://blog.csdn.net/dreaming__ldx/article/details/84976834 https://blog.csdn.net/acterminate/article/details/79339494 题意: 给你一个数组,将数组里的所有元素进行全排列,然后 借助这两个条件求出Σfa 即可. 分析: n可以取到10^6,Time limit 是 3000 ms,直接枚举有n!种情况,显然优先认为这是个组合数学问题,找出一个通式本题即可AC. 从n个位…
Description 给定一颗 \(n\) 个顶点的树,顶点 \(i\) 有点权 \(p_i\).其中 \(p_1,p_2,\cdots, p_n\) 为一个 \(0\sim (n-1)\) 的一个排列. 有 \(q\) 次操作,每次操作: \(\texttt{1 x y}\):交换 \(x, y\) 两顶点的点权: \(\texttt{2}\):求树上所有路径上的点权构成的集合的 \(\text{MEX}\) 中最大的.其中 \(S\) 集合的 \(\text{MEX}\) 为其中最小的没有…
A.Warrior and Archer(思维) 战士一定会ban掉当前边缘的位置.而战士和射手就会选择剩下的最远的两点.我们让剩下的最远的两点最近就达到了均衡.于是我们枚举战士ban掉的边缘,ban的次数是一定的. # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <que…