lightoj 1013
来源:互联网 发布:qq群关系数据库 编辑:程序博客网 时间:2024/06/06 02:03
/********************* * Author:fisty * Data:2014-10-11 * lightoj 1013 * DP + LCS * ******************/#include <cstdio>#include <cstring>#define max(a,b) ((a)>(b)?(a):(b))const int N=32;int dp[2][N]; /* 存储LCS长度 */__int64 f[2*N][N][N];char str[N],ch[N];int LCS (int lenstr,int lench){//返回LCS的长度memset(dp,0,sizeof(dp));int k;for (int i=1;i<=lenstr;i++){k=i&1;for (int j=1;j<=lench;j++) if (str[i-1] == ch[j-1]) dp[k][j]=dp[k^1][j-1]+1; elsedp[k][j]=max(dp[k][j-1],dp[k^1][j]);}return dp[k][lench];}int main (){#ifdef ONLINE_JUDGE#elsefreopen("read.txt","r",stdin);#endifint T;scanf("%d",&T);for (int Cas=1;Cas<=T;Cas++){scanf("%s%s",str,ch);int lenstr=strlen(str);int lench=strlen(ch);int lenlcs=LCS(lenstr,lench);int ans=lenstr+lench-lenlcs;memset(f,0,sizeof(f));f[0][0][0]=1;for (int i=0;i<=ans;i++) for (int j=0;j<=lenstr;j++)for (int k=0;k<=lench;k++) if (f[i][j][k])if (str[j]!=ch[k]){f[i+1][j+1][k]+=f[i][j][k];f[i+1][j][k+1]+=f[i][j][k];}elsef[i+1][j+1][k+1]+=f[i][j][k];printf("Case %d: %d %lld\n",Cas,ans,f[ans][lenstr][lench]);}return 0;}
0 0
- lightoj 1013
- lightoj 1013
- lightoj 1013
- LightOJ 1013 - Love Calculator
- LightOJ 1013 - Love Calculator
- Lightoj 1013 DP
- LightOJ 1013 - Love Calculator
- lightoj 1013 - Love Calculator
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- hdu 5038 求出现次数最多的grade
- 备忘录
- POJ 3074 Sudoku DLX精确覆盖
- vxWorks5.4下加载.out文件的需要注意事项
- hdu 5037 周期优化
- lightoj 1013
- Android中FLAG_ACTIVITY_CLEAR_TASK的作用
- PAT(A) 1011
- CocoaPods安装和使用教程
- 《javascript高级程序设计》读书笔记(二)javascript基本概念
- 启动cocos2d-x报错:无法打开libBox2d.lib
- 配置虚拟主机并更改Apache默认解析路径
- Combination Sum
- 两道Splay小结--bzoj1112: [POI2008]砖块Klo&bzoj1588: [HNOI2002]营业额统计