
记忆化搜索
文章平均质量分 54
WildKid1024
骐骥一跃,不能十步。驽马十驾,功在不舍!
展开
-
UVA 10453—— Make Palindrome
题意:给定一个字符串,求添加最少的字母使得该串是回文串。 思路:区间dp+记忆化搜索。dp[i][j]为区间的最小添加数,那么dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1;相等时则为dp[i+1][j-1]; code: #include using namespace std; const int INF=0x3f3f3f3f; const原创 2016-03-27 20:35:00 · 489 阅读 · 0 评论 -
UVA 11552——Fewest Flops
题意:给定一个长为s的字符串(其中s为k的倍数),然后按照前后分成s/k 组,每组之内可以重排,使得重排后的块数最少(一段连续的字母算是一块)。 思路:区间dp,dp[i][fa]表示前i组且第i+1组的最左边的字符是fa+'a'的状态能得到的最少的块数,那么状态转移也就是枚举两边应该放什么字符。 code: #include using namespace std; c原创 2016-03-28 21:29:15 · 449 阅读 · 2 评论