题意: 话的长度为n,语句里的字符不是2就是3。 呃喵的智力非常有限,只有m点。她每次操作可以交换两个相邻的字符,然而代价是智力-2。 现在问你,在使得自己智力不降为负数的条件下,呃喵最多能使这个字符串中有多少个子串”233”呢? 如”2333”中有一个”233”,”232323”中没有”233” 1 <= n <= 100, 0 <= m <= 100
题解: 一看到正解是 枚举i+1这个2要转移到中间那一段时,转移的状态其实都是f[i+1][j1][k+1][2][0]。而且考虑一下把这个2换到前面,破坏一个答案肯定不是最优的。所以特殊的转移只有换一次换到位置i。而中间一段同样的转移,用个数组记录,最后扫一遍就好了。 分析一下3的转移,也有类似的浪费,同样的方法处理即可。 于是复杂度就将到
就是写起来有点恶心
新闻热点
疑难解答