最长公共子序列。

 /*
LCS 最长公共子序列
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<map>
#include<math.h>
using namespace std;
typedef long long ll;
//typedef __int64 int64;
const int maxn = ;
const int inf = 0x7fffffff;
const double pi=acos(-1.0);
const double eps = 1e-;
int dp[ maxn ][ maxn ];
char s1[ maxn ],s2[ maxn ];
bool ss[ ][ ];
//map<char,char>mp;
void init(){
memset( dp,,sizeof( dp ) );
//for( int i=0;i<26;i++ ){
//mp[ 'a'+i ] = '@';
//}
memset( ss,false,sizeof( ss ) );
}
bool same( int x,int y ){
if( s1[x]==s2[y]||ss[s2[y]-'a'][s1[x]-'a']==true ) return true;
else return false;
}
int main(){
int T;
while( scanf("%d",&T)!=EOF ){
int Case = ;
while( T-- ){
scanf("%s",s1);
scanf("%s",s2);
init();
int q;
scanf("%d",&q);
char a[],b[];
while( q-- ){
scanf("%s",a);
scanf("%s",b);
ss[a[]-'a'][b[]-'a']=true;
//mp[ a[0] ] = b[0];
}
int len1 = strlen( s1 );
int len2 = strlen( s2 );
for( int i=;i<=len1;i++ )
dp[ i ][ ] = ;
for( int i=;i<=len2;i++ )
dp[ ][ i ] = ;
for( int i=;i<=len1;i++ ){
for( int j=;j<=len2;j++ ){
if( same( i-,j- )==true )
dp[ i ][ j ] = dp[ i- ][ j- ]+;
else
dp[ i ][ j ] = max( dp[i-][j],dp[i][j-] );
//printf("dp[%d][%d]=%d\n",i,j,dp[i][j]);
}
}
if( dp[len1][len2]!=len1 ) printf("Case #%d: unhappy\n",Case++);
else printf("Case #%d: happy\n",Case++);
}
}
return ;
}

最新文章

  1. 在Linux上配置Zabbix的环境
  2. vuejs - the component is a fragment instance
  3. window.history 和 DWZ 框架
  4. IPC----哲学家就餐问题(并发与互斥)
  5. vi编辑器的简单使用
  6. 【GOF23设计模式】组合模式
  7. IOS设置背景色设置最简单方法
  8. 我用的比较少的CSS选择器
  9. linux下编译安装mysql5.5以上版本
  10. JS 函数作用域及变量提升那些事!
  11. PyCharm 2017 官网 下载 安装 设置 配置 (主题 字体 字号) 使用 入门 教程
  12. jenkins插件之如何优雅的生成版本号
  13. 【BZOJ1146】网络管理(主席树,树状数组)
  14. 关于HTML、CSS、JavaScript三者关系的简述
  15. python语法_内置函数
  16. SpringMVC+Spring+Hibernate整合开发
  17. django框架配置mysql数据库
  18. 南大算法设计与分析课程复习笔记(2)L2 - Asymptotics
  19. JQ查找到带有某个字符,并起类名,然后替换这个某个字符
  20. Windows 与 Linux下关于端口不能访问的问题

热门文章

  1. html5 canvas 圆形抽奖的实例
  2. Cocos2d-x开发实例:单点触摸事件
  3. OC6_目录及文件的创建
  4. C#抽象工厂简单实现类
  5. (转)DES、RSA、MD5、SHA、随机生成加密与解密
  6. css笔记——inline-block以及空白字符处理
  7. 6.JAVA_SE复习(集合)
  8. Microsoft.DirectX.DirectSound学习(一)
  9. ems lite 客户端远程连接mysql server
  10. 【BZOJ 1079】[SCOI2008]着色方案