Codeforces Round 953 (Div. 2)

Codeforces Round 953 (Div. 2)

闲来无事水题解。

A

B

C

显然 \(k\) 是偶数。考虑 \(k\) 的上界,\(p_{1}=n,p_{n}=1\),产生 \(2n-2\) 的贡献,同时递归到子问题。

那么等价于有 \(1\sim n-1\) 的物品可以有贡献,可以直接贪心构造。

D

好像做复杂了。

\(i\) 能赢有两种情况:

  • 没有得到新的票,那么票数大于自己或者排在前面且票数等于的都要被干掉。还要保证此时编号最小的 \((mex)\) 加上那些人的票不会超过自己。如果超过自己了,容易发现 \(i\) 能赢必须满足 \(i\) 要得到票。转化成下一个情况。
  • 既然 \(i\)\(mex\),那么先把 \(1\sim i-1\) 干掉。如果此时还有比 \(i\) 大的,只需要删掉那个数后一定合法(因为他是最大的)。

维护前缀和做到 \(O(n)\)

E

容易发现对于每个询问会改变的信息只有边界,暴力修改更新贡献再暴力还原。复杂度 \(O(n)\)

F

注意到副对角线上的元素相同且 \(k\ge2\),所以转化为一维的问题。预处理因数做到 \(O(n\ln n)\)

posted @ 2024-07-05 16:54  OIshima  阅读(17)  评论(1编辑  收藏  举报