hdu 5904

来源:互联网 发布:网络营销优化 编辑:程序博客网 时间:2024/05/20 15:40

题目链接:点击打开链接


题解思路:a[x]表示到x的最大连续长度,那么a[x]不就等于a[x-1]+1吗,这题要求连续递增就变得非常简单了.


代码:

#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mx = 1e6+10;int n,m,a[mx],b[mx],num[mx];int main(){    int t;    scanf("%d",&t);    while(t--){        scanf("%d%d",&n,&m);        int x,y;        memset(a,0,sizeof(a));        memset(b,0,sizeof(b));        for(int i=1;i<=n;i++){            scanf("%d",&x);            a[x] = a[x-1]+1;        }        for(int i=1;i<=m;i++){            scanf("%d",&y);            num[i] = y;            b[y] = b[y-1]+1;        }        int ans = 0;        for(int i=1;i<=m;i++) ans = max(ans,min(a[num[i]],b[num[i]]));        printf("%d\n",ans);    }    return 0;}


原创粉丝点击