这篇题解就当是 CF1466 Good Bye 2020 前磨的最后一把剑。
啊,时间真快啊,打了一年 CF
了。
CF1270A Card Game
一个人无赖,不停出最大的牌即可。所以比最大的牌的大小。
CF1270B Interesting Subarray
很多时候一个序列很难处理的问题,看看两个数是否就能解决。
易证,如果存在多个数的解就存在两个数的解,枚举相邻两个数即可。
CF1270C Make Good
设当前和为 (s),异或和为 (x),有两个巧妙的做法:
-
考虑异或的性质,用两个数解决这道题:(x,x+s)。
-
如果用一个数解的话,这个数应该是固定存在的。分析这个数的性质:
- 如果 (s) 是奇数,先用这个数把它填成偶数。
- 否则对于每个 (i),如果 (x) 的第 (i) 位和 (s) 的第 (i+1) 位不等,就填充 (i+1) 位。
CF1270D Strange Device
10
分钟难度。在什么信息都没有的时候,考虑先询问 (1 o k)。
然后重复 (n-k) 次:把得到的数换成下一个没有询问过的数,然后询问。
思考我们得到了哪 (n-k+1) 个不同的数。
这不好想,反过来想有哪 (k-1) 个数没有被选到。
设 (r_i) 为 (a_i) 的全场排名,很明显 (r_i<m) 的选不到,
还有 (r_i>n-k+m) 的也选不到。正好 (k-1) 个。
所以要求 (m),只需要求未知的数中 (r_i<m) 的个数即可。
所以可以从已知的数中选两: (x<y)。
然后先把询问的前 (k-1) 个填充为未知数,处理到一个未知数的时候,把它和空位替换成 (x,y),然后询问。如果得到 (y),说明这个数 (r_i<m)。
CF1270E Divide Points
做完题知道了:从图论下手这题是不可做的。
现在需要一个固定的准则,把同长的边不染不同色。
以第一个点为原点,考虑每个点两维的奇偶性。
如果都是偶数,全 (div 2)。
-
如果只有 ((0,0)) 和 ((1,1)):那么两个集合划开即可。
-
如果有 ((0,1)) 或 ((1,0)):((0,0),(1,1)) 一个集合,其余一个集合。
CF1270F Awesome Substrings
挺 zz
一题,告诉我们打比赛不要顺序开题/卡题。
根号分治,一维几个 (1),一维几倍。
后者用 u_map
/map
要 TLE
的,要数组。
CF1270G Subset with Zero Sum
感觉这种是最非人类的题了:约束问题转图论。
就是 (1le i-a_ile n),然后连边 ((i,i-a_i))。
形成基环树,输出一个连通块的环 (R) 即可,证明: