T1:
赛时一眼秒了,然后爆单了。
没有什么思路就要想到一些套路比如把模拆成减除,然后发现有个 \(k\),自然思路就出来了,\(k\) 必然是一个数的因数。复杂度是根号的。
注意特判 \(s=0,s<0\)!!!
T2:
一眼二分贪心……显然不能优化建图
按照 a 排序也是显然的。
T3:
最唐的地方是所有人都在考虑有没有 n 的情况。
并且 40 分加几行就可以过。
思路:首先一个点最多操作一次显然,又没有根,所以我们枚举根,并且还要枚举这个根的操作点,这样以后根一定不动,剩下的操作就很方便。只需要判定即可。
很显然如果 A 中的儿子和父亲都要选他们一定要满足某种顺序关系的,必须先动儿子再动父亲。并且如果 x 不用 fa 要用一定不行。
如果没有任何限制一定可以随便操作,这个很好证明。然后注意 B 树上也有一定限制。
最后关于这些限制,我们跑拓扑找环即可。
T4:
有意思,这个 01 trick 必须记录一下。
但是并不是 yly 说的和线段树一样的……
\(O(n^4)\) 的做法非常好想。卡一卡直接过 500。
这个转化真的非常的妙啊,记 0 为 1,1 为 -1。则答案为 maxpre + 原来 1 的个数。证明也是显然,主要是通过这样把一个复杂的 dp 状物变成了前缀的维护。
然后就可以 \(O(n^3)\) 暴力了,每次枚举翻转的左右端点。但是还是差得远。
有一个限制是 k 次翻转的区间一定不交。我们考虑转化一下:对每次操作的区间 sum 取反,由于此时必然为负,所以以后一定不会再选。
这样,就变成了找全局的最大和,线段树维护即可。注意还有区间取反操作。
标签:NOIP,取反,显然,枚举,一定,操作,Round5,模拟 From: https://www.cnblogs.com/LCat90/p/18403157