CF1991
题意:给定长度为 \(n\) 的序列 \(\{a_n\}\)(保证 \(n\) 为奇数),若干次删掉序列中相邻两个元素后剩下唯一一个元素,求该元素的最大值。
分析:
-
操作一次序列长度-=\(2\).
-
我们考虑留下 \(a_k\),则 \(a_k\) 左边的序列与 \(a_k\) 右边的序列互不影响。要只留下 \(a_k\),就需要我们把 \(a_k\) 左右的序列分别完全消除。
-
注意到 \(k\) 为奇数时左右序列长度均为偶数,可以实现;而 \(k\) 为偶数时左右序列长度均为奇数,最后不可能完全消除。
综上,我们发现当且仅当 \(k\) 为奇数时 \(a_k\) 可以作为最后剩下的元素,所以我们只须找到奇数位置上所有元素的最大值即可。
题意:给定 \(b_1,b_2,...,b_{n-1}\),试构造 \(\{a_n\}\),使得 $ b_i = a_i \And a_{i+1} $ 对 \(i \in [1,n)\) 成立,若不能构造则输出 -1
.
分析:
\(\begin{cases} b_1=a_1 \And a_2 \dots (一) \\ b_2=a_2 \And a_3 \dots (二) \\ \end{cases}\)
这里我们拆开每一位来看。容易发现每一位上有 \(b_1=a_1\),那先令 \(a_1=b_1\),这种方案肯定是优的,其他方案都会导致 \(a_2\) 更难构造。 上式中出现了两个 \(a_2\),那我们接下来就观察 \(a_2\) 好了。
-
若某一位 \(b_1=a_1=b_2=0\),令该位 \(a_2=0\) 一定是最优的,此时 \(a_3\) 在这一位没有限制;否则从二式来看,该位 \(a_3\) 必须是 \(0\).
-
若某一位 \(b_1=a_1=0 \and b_2=1\),则为了满足二式只能令该位 \(a_2=1\).
-
同理,对 \(b_1\) 和 \(b_2\) 的另外两种组合也能找到最优的方案即令 \(a_2=b_2 | b_1\).
综上,对任意两个相邻式子,可以类似地得到最优构造:令 \(a_i=b_i|b_{i-1}\).
构造完判断对于 \(\forall b_i\) 是否满足 \(b_i=a_i \And a_{i+1}\) 即可。
总结:有意思的贪心。罚两发,唐。
题意:给定长度为 \(n\) 的序列 \(\{a_n\}\). 操作为每次选定一个值 \(x\),然后对 \(a_i \rightarrow |a_i-x|\). 最多不能超过 \(40\) 次操作,问能否构造一种方案,使序列中所有的元素都变成 \(0\)?
分析:
首先考虑无法构造方案的情况,容易发现当序列中出现奇偶性不同的数时永远也不可能得到全0序列,而其他情况均可行。特判即可。
对于剩下的情况:
- 观察数据猜测时间复杂度大概是线性带
log
级别的,容易想到取最大值和最小值的平均值作为 \(x\),这样使得每一次值域范围都会折半。复杂度合理。
模拟过程即可。
题意:
分析:
四色定理,典。
容易发现不超过四个颜色就可以完成正确的染色。
考虑 \(1,2,3,4,1,2,3,4...,1,2,3,4,...\) 的构造,发现居然是成立的。
证明也很简单,考虑编号二进制的后两位。显然后两位相同的两个位置异或后的结果必然是合数,则两个位置之间肯定没有连边,也就可以同色。
题意:给你一张连通图和三种颜料,\(A\) 和 \(B\) 博弈,每轮 \(A\) 限制一种颜色不能选择,\(B\) 可以选一个点用剩下两种颜色的一种涂色。涂色完仍然没有一条边上相邻两个点的颜色相同则 \(B\) 胜,否则 \(A\) 胜。问谁必胜?在图上交互。
分析:
思路有点点清奇。。一开始觉得第三种颜色没有用,所以直接想了 \(A\) 持续限制颜料\(3\)的使用时的情况,发现这样的话链好处理,剩下的可以把图拆成若干可重叠的环。此时想到对环的长度进行奇偶分讨。
-
当存在奇环时,显然 \(A\) 就必胜了,只须一直限制颜料三的使用,\(B\) 只能在一个环上两种颜料交替涂色,奇环注定会出现同色碰在一起的情况。
-
考虑 \(n\) 元偶环。当时构思了一个很古怪的构造,感觉上好像偶环是 \(B\) 必胜。
这时我突然意识到,貌似存在奇环 \(A\) 必胜,否则 \(B\) 必胜。
那怎么构造对抗交互呢?好像我的构造又有点难实现出来,也想不清楚。
然后回头审视一下,其实对于有无奇环的判断,就相当于对图是否为二分图的判断。那么为什么二分图 \(B\) 必胜呢?接下来就准备利用二分图的性质构造了。
考虑到二分图具有左部点集和右部点集,且这两个点集内部两两无边。
考虑尽量使得左部点集都涂 \(1\),右部点集都涂 \(2\). 因为二分图嘛,这个想法是自然的。但是题目环境下,可能会限制一个颜色不让用,但是不管限制哪个颜色,要么能使用 \(1\),要么能使用 \(2\),要么能使用 \(1\) 或者 \(2\),所以只要左部点集和右部点集都没有被涂满,总能选一个涂上色。如果两个集合里有一个集合中所有点已经被涂满了,那么剩下的点我们能涂对应部点集的颜色就涂这种颜色,不能涂就涂颜料3.
然后就找到正确的构造了。
总结:非常棒的构造+分讨题,赛时最后五分钟过了,没有掉分。。不过本来也没几分。