题目连接:111 - History Grading

题目大意:给出一个n 代表序列中元素的个数, 然后是一个答案, 接下来是若干个同学的答案(直到文件结束为止), 求出两个序列的最长公共子序列, 注意给出的答案均是以该事件处于第几个发生的, 例如 :2 3 4 1

即是 对应第1个事件在第2个发生,第2个事件在第3个发生 ...转换一下就是  4 1 2 3。

解题思路:最长公共子序列问题, 状态转移方程

d[i][j] =

0( i == 0 ||  j == 0)

d[i - 1] [j - 1] + 1 ( a[i] == b[i])

max(d[i - 1][j] , d[i] [j - 1])

#include <stdio.h>
#include <string.h>
const int N = 1005;
int max (const int &x, const int& y) { return x > y ? x : y; } int a[N], b[N], dp[N][N];
int main() {
int n, t;
while (scanf("%d", &n) == 1) {
for (int i = 1; i <= n; i++) {
scanf("%d", &t);
a[t] = i;
} while (scanf("%d", &t) == 1) {
b[t] = 1; for (int i = 2; i <= n; i++) {
scanf("%d", &t);
b[t] = i;
} memset(dp, 0, sizeof(dp));
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++) {
if (a[i] != b[j])
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
else
dp[i][j] = dp[i - 1][j - 1] + 1;
} printf("%d\n", dp[n][n]);
}
}
return 0;
}

uva 111 History Grading(最长公共子序列)的更多相关文章

  1. UVa 111 - History Grading (by 最长公共子序列 )

     History Grading  Background Many problems in Computer Science involve maximizing some measure accor ...

  2. UVA 111 History Grading

    读题读了好久,其实就是在输入数据时要对数据的位置进行相应的改变 #include<iostream> #include<cstring> #include<cstdio& ...

  3. uva 111 History Grading(lcs)

    题目描述 在信息科学中有一些是关于在某些条件限制下,找出一些计算的最大值. 以历史考试来说好了,学生被要求对一些历史事件根据其发生的年代顺序来排列.所有事件顺序都正确的学生无疑的可以得满分.但是那些没 ...

  4. uva 111 - History Grading (dp, LCS)

    题目链接 题意:给N,第二行是答案,n个数c1---cn, 代表第一个的顺序是c1,第二个数顺序是c2; 下面每一行是学生的答案,格式同上. 注意:这个给的顺序需要处理一下,不能直接用. 思路:LCS ...

  5. UVa 111 History Grading (简单DP,LIS或LCS)

    题意:题意就是坑,看不大懂么,结果就做不对,如果看懂了就so easy了,给定n个事件,注意的是, 它给的是第i个事件发生在第多少位,并不是像我们想的,第i位是哪个事件,举个例子吧,4 2 3 1, ...

  6. UVA 10405最长公共子序列

    裸最长公共子序列,直接贴代码 #include<cstdio> #include<iostream> #include<algorithm> #include< ...

  7. UVA - 10635 最长公共子序列

    input n,p,q 2<=n<=250 1<=p,q<=n*n 1 a1 a2 a3 ... ap 1<ai<n*n,ai!=aj 1 b1 b2 b3 ... ...

  8. UVA 1045 最长公共子序列

    题目描述:求最长公共子序列 若给定序列X={x1,x2,...,xm},另一序列Z={z1,z2,...,zk},是X的子序列是指存在一个严格递增的下标序列{i1,i2,...,ik}使得对所以j=1 ...

  9. uva111动态规划之最长公共子序列

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=74662#problem/C     A B C D E C - Largest Rect ...

随机推荐

  1. 关于在xp(sp3 专业版)下安装sql2005开发版图解

    今天我在xp上安装sql2005,搞了一上午也没有搞好,最终自己还是搞好,也装了,也卸载了!这里就总结一下,让以后用sql2005的朋友能有个参考!我也是自己在GOOGLE上搜索的! 转自:http: ...

  2. StringEscapeUtils的使用

    使用commons-lang.jar import org.apache.commons.lang.StringEscapeUtils; public class T { public static ...

  3. 概率dp小结

    好久之前学过,记得是一次亚洲区的前几天看了看概率dp,然后亚洲区就出了一道概率dp,当时虽然做上了,但是感觉有很多地方没懂,今天起早温习了一下,觉得很多地方茅塞顿开,果然学习的话早上效果最好了. 首先 ...

  4. c笔试题(1)

    1.sizeof和strlen的区别 #include<stdio.h> #include<string.h> int main() { char a[10] = " ...

  5. uva 352 - The Seasonal War

    題意: 要確認畫面中有幾隻Eagles,每個pixel如果是'1'代表為一隻Eagles,但上下左右(包含斜角共8個方向)相連的'1'只能算是同一隻. 想法: 使用DFS找'1'有幾個區域. #inc ...

  6. CentOS 7 之安装篇

    程序员是一个学到老的行业,因为新换一个公司,感觉也轻松了好多,自己想想还是多学一些知识吧,中国政府都要强制以每年15%的比例使用国产系统,相信Linux还是有必要学习的.因为曾经在文思做Expedia ...

  7. asp.net跨域上传文件

    前端: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...

  8. CSS特殊性

    样式的优先级取决于特殊性,特殊性为0,0,0,0 Ø每个元素或伪元素选择器贡献特殊性为 0,0,0,1 Ø每个类.伪类或者属性选择器的特殊性为 0,0,1,0 Ø每个ID选择器的特殊性为 0,1,0, ...

  9. Css3抖动

    http://files.cnblogs.com/xinlinux/csshake.min.css <div class="shake">AAA</div> ...

  10. python学习第十一天 -- 函数式编程

    在介绍函数式编程之前,先介绍几个概念性的东西. 什么是函数式编程? 函数式编程的特点: 1.把计算视为函数而非指令; 2.纯函数式编程:不需要变量,没有副作用,测试简单; 3.支持高阶函数,代码简洁. ...