这可能是我第1场只出1题的div1?
A 鬼畜题? 我的dev没有字符统计功能,于是只好扔到notepad++上。数错好几次。题目本身没什么特别的地方。
B 当时一直没想出来QAQ 题目中说m>=n*c/2,可以以c/2为突破口思考。
考虑c/2把权值等分,大于c/2的一定要比小于c/2的数大
想到这一点就好了,考虑小于c/2从前往后放,大于c/2的从后往前放,保证头尾那两段都符合条件。
对于前缀:每次新加一个数,能填到末尾就填,否则将它的upper_bound置成x。(由于每次至少将一个数减1,故每个数的操作次数不超过c/2)
后缀类似,每次操作都将数至少+1。(要与末尾元素变化方向一致)
当时没想出来,可能这方面的题目做的太少,或者是自己思维能力确实不够。
当时的思路是“先让n个位置都有数,然后尝试着调整数列”,gg
C 看了一眼没想法
D 先写式子把,得到O(n^2)的做法,考虑把把一个东西拿出来,算一下系数,发现它们被约成只剩2项!然后就轻易的O(n)辣。
后来发现这道题主要考的是“组合数%合数”,拉了以前写的板子,改了一波。
由于这道题是多组询问,所以需要预处理一些东西,使得单次复杂度为O(log^2 n)
由于自己傻逼,还因为预处理错WA了一发。