UVA10066
/*
最长公共子序列
*/ #include <cstdio>
#include <string.h>
#include <iostream>
const int maxn=105;
int N[maxn],M[maxn];
int dp[2][maxn];
int main()
{
int i,j,n,m,num=0;
while(true){
scanf("%d%d",&n,&m);
if(n==0&&m==0) break; for(i=0;i<n;i++)
scanf("%d",&N[i]);
for(j=0;j<m;j++)
scanf("%d",&M[j]);
int d=1;
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++){
if(N[i-1]==M[j-1])
dp[d][j]=dp[d^1][j-1]+1;
else
dp[d][j]=dp[d][j-1]>dp[d^1][j]?dp[d][j-1]:dp[d^1][j]; }
d=d^1;
}
printf("Twin Towers #%d\n",++num);
printf("Number of Tiles : %d\n",dp[d^1][m]);
printf("\n");
}
return 0;
}
UVA10066的更多相关文章
随机推荐
- minix中二分查找bsearch的实现
在看minix中bsearch实现的源代码之前,先学习一下C 语言中void类型以及void*类型的使用方法与技巧. void的含义: void的字面意思是“无类型”,void *则为“无类型指针”, ...
- php---进行签名验证
为什么要进行签名,我们在进行数据请求的时候,为了防止数据被人截取,造成不好的影响,所以我们在进行数据请求的时候,需要进行签名验证,进行签名的原理是:客户端和服务端使用同样的签名算法,来计算签名,当客户 ...
- 【转】单片机中volatile定义的作用详解
传送门:http://www.eeworld.com.cn/mcu/2011/0411/article_3928.html 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译 ...
- Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup, setsid, &, disown)
Linux 将进程放入后台执行,解决网络,ssh断开导致进程结束(nohup, setsid, &, disown) 1.nohup 命令 我们知道,当用户注销(logout)或者网络断开 ...
- Eigen中的基本函数 及其对应的matlab函数
原文地址C++矩阵库 Eigen 快速入门 不仅有函数的基本形式,还有对应的matlab函数,用起来很方便. Eigen 矩阵定义 #include <Eigen/Dense> Matri ...
- JavaScript 包管理工具npm 和yarn 对比
- 蓝桥杯 - G将军有一支训练有素的军队 - [树形DP]
G将军有一支训练有素的军队,这个军队除开G将军外,每名士兵都有一个直接上级(可能是其他士兵,也可能是G将军).现在G将军将接受一个特别的任务,需要派遣一部分士兵(至少一个)组成一个敢死队,为了增加敢死 ...
- 疯狂java讲义 第三版 笔记
java7新加特性: 0B010101 二进制数 int c=0B0111_1111; 数值中使用下划线分隔 switch 支持String类型 字符串常量放在常量池 String s0 ...
- 源码解读 zsetAdd
https://github.com/antirez/redis/blob/6a6471aad5e4f8d6cbab677b918b14cdee416296/src/t_zset.c /* Updat ...
- NTLM
我们介绍Kerberos认证的整个流程.在允许的环境下,Kerberos是首选的认证方式.在这之前,Windows主要采用另一种认证协议——NTLM(NT Lan Manager).NTLM使用在Wi ...