摘要: 题目大意就是给两个长度相同的字符串,每次操作能使一段变成相同的一个字符,要求是串1变成串2的最小操作数目 (先假设从一个完全不相同的字符串变成串2)先用区间dp求出任意两点之间的最小操作数,dp[i][j]是i到j 的最小操作数 然后用一个数组求串1到串2的最小操作数,对于某一点,如果s[i]==p 阅读全文
posted @ 2017-09-14 16:43 walfy 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 转移方程:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k+1][j]+(sum[j]-sum[k])*(k-i+1)+a[i]*(k-i)); 一开始思路好像出了一点问题,我是考虑每次更新时把k放到第j个位置,然后k+1到j整体前移,但是不知道错在哪里了, 正解是,对于转 阅读全文
posted @ 2017-09-14 10:16 walfy 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 转移方程是dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+mul[i][k][j]); k是中间的那个数,每次更新k的值 #include<map> #include<set> #include<cmath> #include<queue> #include<stac 阅读全文
posted @ 2017-09-14 10:12 walfy 阅读(149) 评论(0) 推荐(0) 编辑