读书人

hdu 1423 最长公共递加子序列

发布时间: 2013-04-09 16:45:09 作者: rapoo

hdu 1423 最长公共递增子序列

刚刚习得这一技巧,做的太好了,可以直接拿来当模板用。估计也不会有什么变式之类的麻烦的东西。直接贴代码,太短了,一看就记住了。

#include<iostream>using namespace std;int a[505],b[505],f[505];int main(){    int T,i,n1,n2,j,k,max;    cin>>T;    for(i=1;i<=T;i++)    {        cin>>n1;        for(j=1;j<=n1;j++)            cin>>a[j];        cin>>n2;        for(j=1;j<=n2;j++)            cin>>b[j];        memset(f,0,sizeof(f));        for(j=1;j<=n1;j++)        {            max=0;            for(k=1;k<=n2;k++)            {                if(a[j]>b[k]&&max<f[k])                    max=f[k];                if(a[j]==b[k])                    f[k]=max+1;            }        }        max=0;        for(j=1;j<=n2;j++)            if(f[j]>max)                max=f[j];        cout<<max<<endl;        if(i!=T)            cout<<endl;    }    return 0;}


hdu 1423 最长公共递加子序列

读书人网 >编程

热点推荐