摘要:
问题问的是最少可以把一个字符串分成几段,使每段都是回文串。 一开始想直接区间DP,dp[i][j]表示子串[i,j]的答案,不过字符串长度1000,100W个状态,一个状态从多个状态转移来的,转移的时候要枚举,这样时间复杂度是不可行的。 然后我就想降维度了,只能线性DP,dp[i]表示子串[0,i] 阅读全文
摘要:
dp[S]表示已经消灭目标集合为S的最少射击数 dp[0]=0 dp[S]=min( dp[S'] + min( health[i] , health[i]/demage[j][i] ) ) 其中S-S'={i},j∈S' 1 #include<cstdio> 2 #include<cstring> 阅读全文