Description

Input

Output

Sample Input

5
1 4 2 5 1
4
1 1 2 4

Sample Output

2
1 4

Data Constraint


题解

这题我考场上想到了各种玄学复杂度的方法,然后没写一种,直接调T2去了
T2也没调出来,结果是我T2树状数组出了一个诡异的问题,然后100->0。。。
这个题其实就是个dp
dp[i][j]代表a数组到i,b数组到j,的最大长度dp[i][j]代表a数组到i,b数组到j,的最大长度
然后就是那几个限制条件下找max,然后具体可以看我代码
话说这代码是我抄的,因为我的调不出来。。。
hzy大神还开了滚动,自己看吧。
代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<vector>
#define ll long long
using namespace std;
inline int read(){int x=0;char ch=' ';int f=1;while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();if(ch=='-')f=-1,ch=getchar();while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
int n,m;
int a[5001],b[5001],dp[5001],pre[5001][5001];
inline void print(int x,int dep){if(dep==0)return;print(pre[dep][x],dep-1);printf("%d ",b[x]);
}
int main(){freopen("okarin.in","r",stdin);freopen("okarin.out","w",stdout);n=read();for(int i=1;i<=n;i++){a[i]=read();}m=read();for(int i=1;i<=m;i++){b[i]=read();}for(int i=1;i<=n;i++){int k=0;for(int j=1;j<=m;j++){if((a[i]==b[j])&&(dp[j]<dp[k]+1)){dp[j]=dp[k]+1;pre[dp[j]][j]=k;}if(a[i]>b[j]&&dp[j]>dp[k]){k=j;}}}int ans=0,j=0;for(int i=1;i<=m;i++){if(ans<dp[i]){ans=dp[i];j=i;}}printf("%d\n",ans);print(j,ans);return 0;
}

【NOIP2017提高A组集训10.25】凤凰院凶真(dp)相关推荐

  1. JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo

    Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...

  2. 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真

    这是一道DP题,然后做的时候发现,DP式子死活推不出来. 题目大意(本人实在是不想复制了呵-- 给出A,B序列 找出他们的最长公共严格递增子序列 明确,这是一道DP 所以设状态fi,jf_{i,j}f ...

  3. JZOJ5424. 【NOIP2017提高A组集训10.25】凤凰院凶真

    题解 题目的意思是求两个序列的最长公共上升子序列. 就此可以联想到求两个序列的最长公共子序列: 设fi,jf_{i,j}表示a序列处理到i,b序列处理j的最长公共子序列, 转移很简单. 现在要满足公共 ...

  4. JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真

    Description Input Output Sample Input 5 1 4 2 5 1 4 1 1 2 4 Sample Output 2 1 4 Data Constraint Solu ...

  5. NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案

    题意:求lcis以及其方案. 原题:千帆渡 n<=5000. 很明显的DP. 设f[i][j]表示做到a的第i位,结尾是b的第j位,这样子便于记录方案. 那么明显有 f[i][j]=max(f[ ...

  6. JZOJ 5421. 【NOIP2017提高A组集训10.25】嘟嘟噜

    Description 由于众所周知的原因, 冈部一直欠真由理一串香蕉. 为了封上真由理的嘴, 冈部承诺只要真由理回答出这个问题, 就给她买一车的香蕉: 一开始有n 个人围成一个圈, 从1 开始顺时针 ...

  7. JZOJ 5425. 【NOIP2017提高A组集训10.25】数论

    Description 聪明的0v0正在学习莫比乌斯反演. 她看到了这样的一道题:有n*m个人站成了一个n*m的方阵-- 剩下的题面,聪明的0v0不记得了.但是,她通过自己高超的数论技巧,给出了一个转 ...

  8. JZOJ 5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜

    Description Input 第一行两个整数n;m 表示电子个数和询问个数. 接下来n 行, 每行两个整数x; y 表示vi. 接下来m 行, 每行形如1 p x y 或2 l r, 分别表示两 ...

  9. 【NOIP2017提高A组集训10.25】摘Galo (树形dp)

    Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...

  10. 【JZOJ 5426】【NOIP2017提高A组集训10.25】摘Galo

    Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...

最新文章

  1. python的try exception捕获异常
  2. Seleunim 获取文本和标签属性的方法
  3. 批处理之判断文件是否存在
  4. 现代的时代精神是什么?
  5. windows下python 自动截图功能
  6. 客气话要靠谱。比如公司业务一直没开展,却说学到了太多东西,那学的难道是怎样把公司搞死?
  7. unittest 简单使用
  8. 451.根据字符出现频率排序(力扣leetcode) 博主可答疑该问题
  9. 中缀表达式转后缀表达式详解
  10. WPS快捷键之 通用基础
  11. 带CAN唤醒能力的TJA1043
  12. Fabric2.3分布式部署(fabric-ca)
  13. REST Assured 4 - 第一个GET Request
  14. webform list页面执行删除操作,使用ajax请求
  15. 适用智能电表,热能表,气表等段码LCD液晶显示驱动芯片I2C 接口VK2C22A/B,RAM映射44*4, 40*4
  16. 趣头条今日头条的视频何谓伪原创
  17. html图片缩小属性,CSS属性实现同比例缩小图片
  18. 用月壤实现太阳能发电,人类离「定居月球」又近一步 | 来自贝索斯蓝色起源...
  19. 不见的何止重城,隐隐的又岂是江树。
  20. 关系数据库语言SQL课后练习题(二)

热门文章

  1. ps 毛发 边缘,抠图技巧,抠图后头发边缘的颜色怎处理
  2. 18位身份证校验代码
  3. vm虚拟机搭建click house(单机)
  4. ABAP ALV DEMO示例源码
  5. dede所有目录模板全解
  6. 原型工具Axure6.5的使用
  7. git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)
  8. 【5G】5G中的CU和DU是什么?
  9. ATX电源工作原理的学习
  10. 服务器显示cpu温度高,高手教你巧解cpu温度过高问题