用户工具

站点工具


2020-2021:teams:farmer_john:2sozx:codeforces_round_639_unrated

目录

A

  • 题意:一个序列为$0,1…n-1$,定义一个变换,每个位置$i$变换到位置$(i+a_i)\%n$处,$|a_i|\le10^9$,问是否有两个位置经过一次变换后变换到同一个位置
  • 题解:注意$a_i$可为负数

B

  • 题意:如果$N$和$S$在同一列或者同一行,那么$N$将会向$S$的方向移动一个单元格。现在给定一张图$n,m\le1000$,保证白格一定不会有$N$经过,黑格一定可以通过吸引使得$N$经过。又要求每行每列都必须至少有一个$S$。求最少安排多少个$N$可以达成要求。
  • 题解:若能完成,答案必为黑格的连通块数。若不能完成,有以下几种情况
    • 两个黑格之间有白格
    • 有全为白格的行,无全为白格的列
    • 有全为白格的列,无全为白格的行

C

  • 题意:给出$n(n\le2*10^5)$个变元和一个由$m(m\le2*10^5)$个不等式组成的式子,每个不等式为$x_i<x_j$,要求按$1$到$n$的顺序添加$n$个量词$\forall$与$\exists$使式子永真,要求$\forall$个数最多,或判断无解。
  • 题解:如果出现环则无解。若有解则可贪心的从$1$至$n$选择$\forall$的使用,如果一个数已经是$\forall$,那么他所能达到的点一定是$\exists$,从$1$至$n$扫一遍即可

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