摘要: 我思维比较差,平时也不敢碰dp,但是没办法必须学。这题虽然做了很久,修修改改很久,但是最后做出了,还是很好地。对于如果a[j]>a[i],并且j>i,那么i能跳到j,那dp[j]=max(dp[i]+a[j],dp[j]);如果不能跳转dp[j]=max(dp[j],a[j]);保证dp[j]最大。... 阅读全文
posted @ 2015-08-20 16:27 sweat123 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题意:如果有相同的字母,这些字母只输出一次。其余的都输出。先做一次LCS,标记相同的字母,然后回溯输出。#include#include#define maxn 110char s1[maxn],s2[maxn];int dp[maxn][maxn],map[maxn][maxn],len1,len... 阅读全文
posted @ 2015-08-20 11:00 sweat123 阅读(123) 评论(0) 推荐(0) 编辑
摘要: dp[i][j]表示配对的最大值。dp[i-1][j]表示s1[i-1]与'-'配对.dp[i][j-1]表示s2[j-1]与'-'配对.dp[i-1][j-1]表示s1[i-1]与s2[j-1]配对。dp[i][j]=max(dp[i-1][j]+mp[s1[i-1]]['-'],dp[i][j-... 阅读全文
posted @ 2015-08-20 09:58 sweat123 阅读(153) 评论(0) 推荐(0) 编辑