UVA 111 - History Grading
2011-11-30 17:50
441 查看
这道题的输入比较奇葩,先输入N,再输入事件号,事件对应的时间是输入序列中的编号。
然后再求序列c与序列r的最长公共子序列。
然后再求序列c与序列r的最长公共子序列。
#include<stdio.h> #include<string.h> #define MAXD 25 int d[MAXD][MAXD], c[MAXD], r[MAXD]; int N; int max( int a, int b) { return a > b ? a : b; } void dp() { memset( d, 0, sizeof d); for( int i = 1; i <= N; i ++) for( int j = 1; j <= N; j ++) { d[i][j] = max( d[i - 1][j], d[i][j - 1]); if( c[i] == r[j] ) d[i][j] = max( d[i - 1][j - 1] + 1, d[i][j]); } } int main() { int a; while( scanf( "%d", &N) == 1) { for( int i = 1; i <= N; i ++) { scanf( "%d", &a); c[a] = i; } int j = 0; while( scanf( "%d", &a) == 1) { r[ a] = ++j; if( j == N) { j = 0; dp(); printf( "%d\n", d ); } } } return 0; }
相关文章推荐
- UVA 111 - History Grading(动态规划)
- UVa 111: History Grading
- uva 111 History Grading
- uva 111 History Grading(动态规划——最长公共子序列)
- UVa 111 History Grading (简单DP,LIS或LCS)
- uva-111 G - History Grading
- UVA - 111 History Grading
- uva 111 - History Grading (dp, LCS)
- UVa 111 - History Grading
- UVA 111 History Grading
- UVA - 111 History Grading
- UVa 111 - History Grading 最长递增子序列 LIS
- UVA - 111 History Grading
- UVA 111 History Grading(题意杀,最长公共子序列)
- 序列代码UVa 111 History Grading (最长公共子序列)
- uva 111 History Grading(DP初步应用)
- uva 111 History Grading(lcs)
- UVa 111 - History Grading (最长公共子序列)
- UVA 111 History Grading
- UVa 111 - History Grading 最长递增子序列 LIS