解题:CF1063F String Journey

题面

分析性质以进行DP

性质1:一定有一个最优解通过每次删除第一个或最后一个字符达到

这个脑补一下就能证明了

那么我们设$dp[i]$表示后缀$[i,n]$选出一个前缀所能达到的最大长度,从右往左DP

转移时二分当前DP值$dp[i]$,在右边找有没有大于等于$f_i-1$且是$[i,n]$前缀/后缀的DP值,具体怎么找就看个人了

可以不二分吗?可以,继续分析得到性质2

性质2:dp[i]<=dp[i+1]+1

反证,如果$dp[i]>dp[i+1]+1$,那么删掉第一个字符,就会得到$dp[i+1]>dp[i+1]+1-1$

所以不用二分直接找

猜你喜欢

转载自www.cnblogs.com/ydnhaha/p/10534938.html
今日推荐