@M1saki
2017-07-19T00:47:36.000000Z
字数 1465
阅读 1749
acm
2017年7月
codeforces
组队训练
入口:2009-2010 ACM-ICPC, NEERC, Southern Subregional Contest
rank | ac/all | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|
42/128 | 9/11 | O | . | O | O | Ø | Ø | O | O | . | Ø | O |
. | 尚未通过 | O | 当场通过 | Ø | 赛后通过 |
---|
比较复杂的模拟。
按可靠值从大到小排个序,贪心去取即可。
注意输出路径的时候要重新排个序。
考虑寻找循环节,若循环节存在且不超过2e7,则必然存在,其中T为循环节。
因此找到循环节之后,从小到大for一遍i,找到的第一个满足上式的即为答案。
否则则为-1。
这道题如果考虑跑的周期的话,最末尾的那一段处理起来会很麻烦,所以我们可以考虑相遇的周期。
记,那么两个人第一次相遇时,总路程走了,之后每次再相遇都需要走,因此有
可以考虑建一棵1e6的线段树。
那么对于a[i],查询1~a[i]-2,a[i],a[i]+2~10^6三段的最大值,以a[i]结尾的最大值就是该值加1,在将值插入线段树,更新,最后求答案时从末尾在遍历一边即可。
模拟。
比较显然的二分。
妙啊!!!
考虑每次相对变化只能变化一个人或者邻近的一个人,这个时候发现,@格雷码这个神奇的东西恰好可以满足这个性质。
因此,枚举1~(1<
比较有趣的递归。