【NOIP2017提高A组集训10.25】凤凰院凶真(dp)
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)相关推荐
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...
- 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
这是一道DP题,然后做的时候发现,DP式子死活推不出来. 题目大意(本人实在是不想复制了呵-- 给出A,B序列 找出他们的最长公共严格递增子序列 明确,这是一道DP 所以设状态fi,jf_{i,j}f ...
- JZOJ5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
题解 题目的意思是求两个序列的最长公共上升子序列. 就此可以联想到求两个序列的最长公共子序列: 设fi,jf_{i,j}表示a序列处理到i,b序列处理j的最长公共子序列, 转移很简单. 现在要满足公共 ...
- 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 ...
- NOIP5424. 【NOIP2017提高A组集训10.25】凤凰院凶真 LCIS 方案
题意:求lcis以及其方案. 原题:千帆渡 n<=5000. 很明显的DP. 设f[i][j]表示做到a的第i位,结尾是b的第j位,这样子便于记录方案. 那么明显有 f[i][j]=max(f[ ...
- JZOJ 5421. 【NOIP2017提高A组集训10.25】嘟嘟噜
Description 由于众所周知的原因, 冈部一直欠真由理一串香蕉. 为了封上真由理的嘴, 冈部承诺只要真由理回答出这个问题, 就给她买一车的香蕉: 一开始有n 个人围成一个圈, 从1 开始顺时针 ...
- JZOJ 5425. 【NOIP2017提高A组集训10.25】数论
Description 聪明的0v0正在学习莫比乌斯反演. 她看到了这样的一道题:有n*m个人站成了一个n*m的方阵-- 剩下的题面,聪明的0v0不记得了.但是,她通过自己高超的数论技巧,给出了一个转 ...
- JZOJ 5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
Description Input 第一行两个整数n;m 表示电子个数和询问个数. 接下来n 行, 每行两个整数x; y 表示vi. 接下来m 行, 每行形如1 p x y 或2 l r, 分别表示两 ...
- 【NOIP2017提高A组集训10.25】摘Galo (树形dp)
Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...
- 【JZOJ 5426】【NOIP2017提高A组集训10.25】摘Galo
Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...
最新文章
- python的try exception捕获异常
- Seleunim 获取文本和标签属性的方法
- 批处理之判断文件是否存在
- 现代的时代精神是什么?
- windows下python 自动截图功能
- 客气话要靠谱。比如公司业务一直没开展,却说学到了太多东西,那学的难道是怎样把公司搞死?
- unittest 简单使用
- 451.根据字符出现频率排序(力扣leetcode) 博主可答疑该问题
- 中缀表达式转后缀表达式详解
- WPS快捷键之 通用基础
- 带CAN唤醒能力的TJA1043
- Fabric2.3分布式部署(fabric-ca)
- REST Assured 4 - 第一个GET Request
- webform list页面执行删除操作,使用ajax请求
- 适用智能电表,热能表,气表等段码LCD液晶显示驱动芯片I2C 接口VK2C22A/B,RAM映射44*4, 40*4
- 趣头条今日头条的视频何谓伪原创
- html图片缩小属性,CSS属性实现同比例缩小图片
- 用月壤实现太阳能发电,人类离「定居月球」又近一步 | 来自贝索斯蓝色起源...
- 不见的何止重城,隐隐的又岂是江树。
- 关系数据库语言SQL课后练习题(二)
热门文章
- ps 毛发 边缘,抠图技巧,抠图后头发边缘的颜色怎处理
- 18位身份证校验代码
- vm虚拟机搭建click house(单机)
- ABAP ALV DEMO示例源码
- dede所有目录模板全解
- 原型工具Axure6.5的使用
- git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)
- 【5G】5G中的CU和DU是什么?
- ATX电源工作原理的学习
- 服务器显示cpu温度高,高手教你巧解cpu温度过高问题