2012年湖南省第八届程序设计大赛 J 病毒(最长上升公共子序列)
来源:互联网 发布:问卷星可以分析数据吗 编辑:程序博客网 时间:2024/05/17 18:19
这题和hdu 1423是一样的, 求最大上升公共子序列
设dp[i][j]为a序列前i个元素和b序列中前i个元素构成的以b[j]为结尾的最大上升公共子序列
if(a[i]!= b[j])
dp[i][j]= dp[i-1][j]
else if(a[i]== b[j])
dp[i][j]= max(dp[i-1][k]) + 1 (1<= k <=j && b[k]< b[j])
最大上升公共子序列详解:
http://wenku.baidu.com/link?url=3sU6f425-IEdqZz1aEcN5-J3EIzzRTprDT1glV_DkZMW6DmN60nLxfUl-WeeUEuxuY_M-WlNhJNabu8Dc_SeO_NZZVeGfkuX3hpZ-CrgM_S
代码:
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 1111#define maxm 111111int a[maxn], b[maxn], d[maxn];int main(){//freopen("C:\\Users\\Monkey\\Desktop\\in.txt","r",stdin);int T;scanf("%d",&T);while(T--){int n, m;scanf("%d",&n);for(int i= 1; i<= n; i++)scanf("%d",&a[i]);scanf("%d",&m);for(int i= 1; i<= m; i++)scanf("%d",&b[i]);memset(d, 0, sizeof(d));for(int i= 1; i<= n; i++){int max= 0;for(int j= 1; j<= m; j++){if(a[i]> b[j] && d[j]> max)max= d[j];if(a[i]== b[j])d[j]= max+ 1;}}int ans= 0;for(int i= 1; i<= m; i++)if(d[i]> ans)ans= d[i];printf("%d\n",ans);}return 0;}
0 0
- 2012年湖南省第八届程序设计大赛 J 病毒(最长上升公共子序列)
- 湖南省第八届省赛 病毒 (最长公共上升子序列)
- 湖南省第12届大学生计算机程序设计大赛 最长上升子序列 csu 1807
- 湖南省赛 病毒 (最长上升子序列)
- 最长公共上升子序列 csu1120 病毒
- 最长公共上升子序列---病毒
- 病毒(LICS 最长上升公共子序列)
- CSU 1120 病毒 最长公共上升子序列(LCIS)
- 【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)
- dp专题 第八题 最长公共子上升序列
- 最长公共上升子序列 (dp)
- 最长公共上升子序列(LIS)
- 最长上升公共子序列(LCIS)
- HDU1423(最长上升公共子序列)
- HDU5904LCIS(最长公共上升子序列)
- Virus (最长上升公共子序列)
- 最长公共上升子序列(dp)
- 最长公共上升子序列
- 给定一个单词集合,找出可以相互转换的集合。比如abc bca cba都可以相互转换(变位词)
- 2014-10-27Android学习------布局处理(五)------ListView布局继续学习-----城市列表应用程序
- 注册表单
- 图片视图UIImageView
- 博客系统
- 2012年湖南省第八届程序设计大赛 J 病毒(最长上升公共子序列)
- 按钮UIButton
- MFC程序窗口标题设定
- ST nucleo系列在使用mbed时 bin文件的替代烧录方式
- 滑动条UISlider
- 数字电路设计之加法器的实现
- 1.16 24点游戏
- hibernate 延迟加载
- leetcode: Find Minimum in Rotated Sorted Array