T1
按照题意模拟即可,不要看提示说明.
T2
代码写得很史 由于不知道怎么求循环节,就只能暴力了
T3
这道题难点主要是读题 读懂题贪心就行了
要注意桶和染料的区别,以及只能将将桶 iii 中的染料和桶 i+1i+1i+1 中的染料进行倒换(即只能挑相邻的桶)
T4
由于手指数量较小,所以我们可以分别枚举 1,2,3,41,2,3,41,2,3,4 根手指能不能AP
check函数可以参考这篇题解,用小根堆模拟.
如果手指数量大的话(比如说二十万手观音)可以二分答案解决,时间复杂度可以从 O(nmlogm)O(nm\log m)O(nmlogm) 降至 O(nlog2m)O(n\log^2 m)O(nlog2m).(mmm 指手指数量)
T5
仔细观察,发现前两个样例已经说明了一切.
压缩一下(如 110000111000011100001 压缩成 101101101),发现施完法后也就这两种情况:
01010\red{0}\blue{1}\orange{0}\green{1}\purple{0}01010(包含 0\red{0}0,101\blue{1}\orange{0}\green{1}101 等情况)
01210\red{0}\blue{1}\orange{2}\green{1}\purple{0}01210(包含 20\orange{2}\purple{0}20,1210\blue{1}\orange{2}\green{1}\purple{0}1210 等情况)
每种情况 555 种状态,一共 101010 种状态……吗?
聪明的你发现这两种情况前两种状态是相同的,那么就可以节省两个状态!
现在拿剩下 888 个DP就行了