博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 111 History Grading (最长公共子序列)
阅读量:5169 次
发布时间:2019-06-13

本文共 845 字,大约阅读时间需要 2 分钟。

题目:

经典dp,最长公共子序列。

需要注意的是,输入的不是原序列,而是在哪个位置。

原来以为刚开始那组是原系列,老是过不了sample,一直以为是在学生答的那组出错,网上找别人代码来单步,发现学生那组没错,又检查了几遍dp部分,结果最后发现是正确答案那组没有读取好。。。郁闷。。。

#include 
#define MAXN 50int max(int a, int b){ if (a > b) return a; return b;}int main(){ int a[MAXN] = {0}, b[MAXN] = {0}; int n, tmp; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &tmp); a[tmp - 1] = i; } while (~scanf("%d", &tmp)) { b[tmp - 1] = 1; int c[MAXN][MAXN] = {0}; for (int j = 2; j <= n; j++) { scanf("%d", &tmp); b[tmp - 1] = j; } for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) if (a[i - 1] == b[j - 1]) c[i][j] = c[i - 1][j - 1] + 1; else c[i][j] = max(c[i - 1][j], c[i][j - 1]); printf("%d\n", c[n][n]); }}
以后发现过不了sample,得找最好找错的那组来调试,这样才不会浪费时间。。。

转载于:https://www.cnblogs.com/java20130723/archive/2013/05/13/3212162.html

你可能感兴趣的文章
计算字符串长度(英文占1个字符,中文汉字占2个字符)
查看>>
Linux用户和组账户管理
查看>>
杭电1032
查看>>
Spket,eclipse下安装Spket插件,格式化js
查看>>
【Stanford Online】Engineering: Algorithms1 NO.4 The Master Method
查看>>
集合的定义
查看>>
IFTT-意大利金融交易税
查看>>
将redis作为windows服务安装
查看>>
jmeter 压测之动态数据关联
查看>>
js 日期格式化
查看>>
转载-计算几何的题目
查看>>
MR室内室外用户区分
查看>>
redis基本指令
查看>>
Unity3D 之武器系统冷却功能的实现方式
查看>>
迪杰斯特拉算法c语言实现
查看>>
window无法启动windows Firewall
查看>>
[专题练习] Part1 搜索
查看>>
QP之QK原理
查看>>
day07 深浅拷贝
查看>>
【C++】非原创|统计代码覆盖率(一:C)
查看>>