MyException - 我的异常网
当前位置:我的异常网» 编程 » hdu 1423 最长公共递加子序列

hdu 1423 最长公共递加子序列

www.myexceptions.net  网友分享于:2013-04-10  浏览:11次
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;
}


偷笑

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有