JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
来源:互联网 发布:大数据教师培训方案 编辑:程序博客网 时间:2024/05/16 14:35
题目
给定两个序列A,B,求他们的最长公共严格上升子序列。
题解
显然DP。
如果设
但是不能够知道具体的序列,因为
所以我们加个限制。
设
显然有
所以只用维护
用①条件建DAG要浪费很大的空间。
用②条件,
为什么这样是对的?
在转移的时候,
所以只需要知道序列的尾部就可以将序列导出。
代码
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define N 5010#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;i--)using namespace std;int i,j,k,l,k1,l1,n,m,n1,A;int a[N],b[N];int ans[N];int f[N],g[N][N];int main(){ scanf("%d",&n);fo(i,1,n)scanf("%d",&a[i]); scanf("%d",&m);fo(i,1,m)scanf("%d",&b[i]); fo(i,1,n){ k=0; fo(j,1,m){ if(a[i]==b[j]){ if(f[k]+1>f[j]){ f[j]=f[k]+1; g[j][f[j]]=k; } } else if(a[i]>b[j]&&f[j]>f[k])k=j; if(f[j]>A){ A=f[j]; n1=j; } } } printf("%d\n",A);k=A; while(n1)ans[k]=b[n1],n1=g[n1][k--]; fo(i,1,A)printf("%d ",ans[i]); return 0;}
阅读全文
2 0
- JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- 【JZOJ 5424】【NOIP2017提高A组集训10.25】凤凰院凶真
- [JZOJ5424]【NOIP2017提高A组集训10.25】凤凰院凶真
- 【NOIP2017提高A组集训10.25】凤凰院凶真(dp)
- 【JZOJ5424】【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- jzoj5424【NOIP2017提高A组集训10.25】凤凰院凶真
- NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案
- 【JZOJ 5421】【NOIP2017提高A组集训10.25】嘟嘟噜
- JZOJ. 5421【NOIP2017提高A组集训10.25】嘟嘟噜
- JZOJ 5425. 【NOIP2017提高A组集训10.25】数论
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
- 【JZOJ 5425】【NOIP2017提高A组集训10.25】数论
- JZOJ 5425. 【NOIP2017提高A组集训10.25】数论
- JZOJ 5421. 【NOIP2017提高A组集训10.25】嘟嘟噜
- 【JZOJ 5426】【NOIP2017提高A组集训10.25】摘Galo
- 【JZOJ 5427】【NOIP2017提高A组集训10.25】吃草
- 软件安装
- 利用unity 制作贪吃蛇小游戏
- Recyclerview嵌套Recyclerview实现简单购物车
- TabLayout展示数据
- 最长递增子序列问题——动态规划
- JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- mongodb 安装与配置
- 第1132期AI100_机器学习日报(2017-10-24)
- ImageLOader
- Angular球员页面---一个简单的Demo
- 多条目展示
- AngularJs简单购物车的实现
- 智能小车42:openwrt的系统配置与gpio操作
- 【12345】输出54321