Action unknown: copypageplugin__copy
2020-2021:teams:farmer_john:2sozx:codeforces_round_639_unrated
A
题意:一个序列为$0,1…n-1$,定义一个变换,每个位置$i$变换到位置$(i+a_i)\%n$处,$|a_i|\le10^9$,问是否有两个位置经过一次变换后变换到同一个位置
B
C
D
题意:长度为$n(n{\le}10^5)$的序列$a(a_i{\le}10^9)$,令$f={\sum_{i=1}^n}b_i(a_i-b_i^2)$,其中$0{\le}b_i{\le}a_i$且${\sum_{i=1}^n}b_i=k$,$k{\le}{\sum_{i=1}^n}a_i$,最大化$f$的值
题解:对于序列中每一个位置$i$考虑如果$b_i+1$是什么情况,$f(b_i+1)-f(b_i)=a_i-3b_i^2-3b_i-1$,对于$b_i$是单调递减的,因此有一个显然的思路,即计算出每个位置的${\Delta}f(b_i)$,每次选择${\Delta}f(b_i)$最大的位置$i$进行操作,并将相应位置的$b_i+1$,由于$k$过大,因此我们可以二分最终的$\max{\Delta}f(b_i)$是多少即可
2020-2021/teams/farmer_john/2sozx/codeforces_round_639_unrated.txt · 最后更改: 2020/05/09 22:06 由 2sozx