zoj 1642 Match for Bonus
2011-08-15 10:52
399 查看
/* 注意数组长度 小的话会SF 大的话会MLE 提交了四次 2005正好 经典dp题 与最长子串不同的是相等情况下不再加1 加的是相应字符的权值 */ #define LOCAL #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<cstdlib> #include<iomanip> #include<string> #include<algorithm> #include<ctime> #include<stack> #include<queue> #include<vector> #define N 2005 using namespace std; int dp ,nchar; class CH_VALUE {public:char ch;int value;}; CH_VALUE ch_value ; int get_value(char ch) { int i; for(i=0;i<nchar;i++) {if(ch==ch_value[i].ch) return ch_value[i].value;} } int main() { #ifdef LOCAL freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); #endif string str1,str2; int strlen1,strlen2,i,j; while(cin>>nchar) { for(i=0;i<nchar;i++) cin>>ch_value[i].ch>>ch_value[i].value; cin>>str1>>str2; strlen1=str1.size();strlen2=str2.size(); memset(dp,0,sizeof(dp)); for(i=1;i<=strlen1;i++) { for(j=1;j<=strlen2;j++) { if(str1[i-1]==str2[j-1]){dp[i][j]=dp[i-1][j-1]+get_value(str1[i-1]);} else{dp[i][j]=(dp[i-1][j]>dp[i][j-1]?dp[i-1][j]:dp[i][j-1]);} } } cout<<dp[strlen1][strlen2]<<endl; } return 0; }
相关文章推荐
- ZOJ 1642 Match for Bonus
- 子串数据ZOJ 1642 Match for Bonus
- ZOJ 1642 Match for Bonus (DP)
- zoj 1642 Match for Bonus(动态规划)
- zoj 1642 Match for Bonus
- ZOJ 1642 Match for Bonus(LCS)
- ZOJ 1642 Match for Bonus
- ZOJ 1642 Match for Bonus
- ZOJ 1642 Match for Bonus
- zoj 1642 - Match for Bonus
- zoj 1642 Match for Bonus[dp,lcs]
- zoj1642 Match for Bonus(DP)
- ZOJ 1642 Match for Bonus(dp)
- zoj1642——Match for Bonus
- ZJU 1642 Match for Bonus
- Match for Bonus
- 'default' is not a best match for any device/locale combination.
- Submitted credentials for token[***]did not match the expected credentials
- ZOJ 2315 New Year Bonus Grant(贪心)
- ValueError: all the input array dimensions except for the concatenation axis must match exactly