场上由于数据数据较水 都有人骗过去,出题人在此谢罪。
祝大家 愉快!
A
可以将题意简化成快速判断是否可以 秒从
到
。
显然 与
的奇偶性是相同的,并且
才能是 "Yes" 。
这也是充分的,因为可以到 后上下上下循环走。
时间复杂度 。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=47843460
Challenge: 如果问求方案数怎么做呢?
B
由于是 题就让数位
过了(
将询问差分,即 。
而对于 中,二进制下有奇数个
的个数可以
,其中
表示二进制下
中
的个数。
证明需要分类讨论:
1.如果 为偶数,那么
为奇数,容易看出
与
的奇偶性是不同的,那么在
中可以划分为
个区间与若
为偶数那么答案为
。
2.若 为奇数那么答案即为
。
结合一下即为上式,时间复杂度 。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=47843504
C
自然的想法是将 个数放到同一个长度为
的区间内进行模拟即可。
则我们考虑维护放到同一个区间过程,记录每次所需转移量即可解决。
最后会剩下小于 次操作,直接模拟即可。
时间复杂度 。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=47843545
D
由于直接递推为 的,而由于
的性质考虑拆开维护
显然上述是一个数论分块的式子,考虑利用根号的性质解决。
如果 的
只会有
个。
那么我们只需要关系 的情况,由于上述
转移是一个长度以
的一段区间和,不难想到通过前缀和实现。
设 表示
的和即可实现
转移。
由于两部分时间复杂度均为 ,总时间复杂度为
。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=47843557
E
考虑当 的情况,我们将点对
表示
的结果。
由于 ,所以对于
,都可以表示成
的形式,但是
不一定均大于
。
而一条斜线上的点 ,则
。
而当 时即为最大的斜线使得在第一象限内没有点。即为
,答案为
。
而当 时我们发现当当
无法表示时,
均无法被表示。
即 无法表示时,
与
均无法表示,并且此条件是充要条件。
那么问题转换为给定 ,每次操作可以减去
或
,求第
大的数。
可以通过优先队列维护,时间复杂度 ,无法通过本题。
线性做法
假设 。由于答案不能算重则当减去
时就不能在减去
。
维护两个队列,一个队列表示当前能减去 ,另外仅能减去
,那么每次在两个队头取最大的比较即可。
正确性类比 蚯蚓。时间复杂度
。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=47843660
F
显然有许多 的做法,但均通过不了此题。
对于每种相同的 单独考虑,并将其树转成以
为根的有根树。
我们设当前考虑的颜色为 ,考虑补集转换,若对于路径
不存在
的话那么
一定在一个不包含
的连通块中。
我们只要找到对于颜色 的极大不包含连通块,将其减去每个点答案减去连通块个数。
那么我们只要找到所有 颜色的极大连通块即可,有一个很显然的是连通块一定仅包含一个根,而根的父亲的
一定是
。
现在我们已经知道每个点为根的颜色,而个数即为在该子树下做洪水填充时没有碰到 时的结点个数。
而这个显然可以记 表示,需要注意一下许多颜色都有强连通块的根为
的个数。
树上差分即可解决。
时间复杂度 ,代码有轻微卡常。
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=47843650