Codeforces Round 955 (Div. 2)

A

非常好特判

一共就五种情况,相等,或者正反两种包含(都是不能可能不包含),或者正反两种先后(都是可能不相等),写五个 if 就行了

B

我到底为什么要跳了这题???????????????????????????????????????????

显而易见这玩意模着模着就变成循环了(我真没看出来),\(1\)\(y-1\) 为一个循环节,所以实际上只需要找一点就行了(实际上是一直找到第一个取模的地方,这样我们就能 \(O(1)\)) 解决这题

Update: \(O(1)\) 没打出来,感觉是思路假了.. 其实这题不一定非要推个式子,T 主要是因为减法效率太低导致的,所以把减法的效率最大化就行了(每次减的尽可能多)

这题挺简单,但其实还是比较难写的,赛时没准要调半小时

C

考虑定义 \(f[i]\) 表示进行到第 \(i\) 位时候的答案,可以发现状态转移:

\[f[i]=min(f[k],f[k]+1) \]

然后再判一下转移还是不转移就行了.

而且发现 \(f[i]\) 是有单调性的,套四边形那里的板子就行.

赛时主要是写麻烦了,定义的 \(f[i][1/0]\) 表示进行到第 \(i\) 位,并且选/不选第 \(i\) 位的答案,得到转移方程:

\[f[i][0]=max(f[i-1][0],f[i-1][1]) \]

\[f[i][1]=max(f[k][0]+1) \]

注意到后一个显然需要单调队列搞一下,于是调了一小时😥

最后发现其实是因为 写单调队列优化别他妈开两维的

改成上面那版就过了,但是赛后发现涛哥根本就没写 DP,这题 贪心就能过😅😅😅😅😅😅😅

D

没开这题,但是裴蜀定理能扩展到多元,记一下.

posted @ 2024-06-26 01:11  HaneDaniko  阅读(81)  评论(2编辑  收藏  举报