hdu 5904 LCIS
来源:互联网 发布:mac系统还原 编辑:程序博客网 时间:2024/05/17 23:40
Problem Description
Alex has two sequences a1,a2,…,an and b1,b2,…,bm. He wants find a longest common subsequence that consists of consecutive values in increasing order.
Input
There are multiple test cases. The first line of input contains an integer T, indicating the number of test cases. For each test case:
The first line contains two integers n and m (1≤n,m≤100000) – the length of two sequences. The second line contains n integers: a1,a2,…,an (1≤ai≤106). The third line contains n integers: b1,b2,…,bm (1≤bi≤106).
There are at most 1000 test cases and the sum of n and m does not exceed 2×106.
Output
For each test case, output the length of longest common subsequence that consists of consecutive values in increasing order.
Sample Input
3
3 3
1 2 3
3 2 1
10 5
1 23 2 32 4 3 4 5 6 1
1 2 3 4 5
1 1
2
1
Sample Output
1
5
0
题解:
我们先预处理出a,b数组中以每个数为结尾的最长连续递增子序列长度,由于题目要求连续递增的。所以可得ca[i]=ca[i-1]+1; 之后min(a[i],b[i])最小值的最大值即可
代码:
#include <bits/stdc++.h>using namespace std;const int maxn=100000+10;typedef long long LL;LL a[maxn],b[maxn];LL n,m;LL ca[maxn],cb[maxn];int main(){ int T; cin>>T; while(T--) { cin>>n>>m; memset(ca, 0, sizeof ca); memset(cb, 0, sizeof cb); for(int i=0;i<n;i++) { scanf("%d", &a[i]); ca[a[i]] = ca[a[i]-1]+1; } for(int i=0;i<m;i++) { scanf("%d", &b[i]); cb[b[i]] = cb[b[i]-1]+1; } LL ans=0; for(int i=1;i<=maxn;i++) { ans=max(ans,min(ca[i],cb[i])); } printf("%d\n", ans); } return 0;}
- HDU 5904:LCIS(LCIS)
- 【HDU 5904 LCIS + dp】
- HDU-5904 LCIS(dp)
- HDU 5904 LCIS (DP)
- 【14.06%】【hdu 5904】LCIS
- HDU 5904 LCIS (dp)
- hdu 5904 LCIS【dp】
- HDU 5904 - LCIS
- HDU-5904-LCIS
- hdu 5904 LCIS
- HDU 5904 LCIS __ dp、LCIS
- hdu 5904 LCIS(简单dp)
- 思维 hdu 5904 (LCIS)
- HDU 5904 LCIS(dp)
- HDU 5904 LCIS (动态规划) -- 解题报告
- HDU --- 5904 LCIS 【思维 + 简单dp】
- 5904 LCIS
- hdu 3308 LCIS
- nyoj 20 吝啬的国度【dfs+vector存图】
- 机器学习和深度学习提问题的好地方
- unity5 动画播放结束都有延迟的问题
- POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)
- Replugin Demo的简单使用与分析(一)
- hdu 5904 LCIS
- HDU-1242 Rescue( 广搜 + 优先队列)
- iOS MapAnchor(地图锚点~自定义)~demo
- hdu 6060 RXD and dividing (树 + 贪心)
- C语言运算符优先级
- linux之sed用法
- Android——api阅读记录
- Perl split函数
- HTML中<!DOCTYPE>作用及用法详解