hdu1257 LIS模板题*

原题地址

题目可以按DP做,或者不按DP做,据说数据是比较水。然后这题的DP模型就是一个LIS问题(最长递增子序列)。

我用模板代码给AC了。。囧。从这个意义上来说,是水题。


//本题采用了人人为我的dp思路
//但是我并不理解,这道题为什么看作LIS就能AC
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int a[40000],w[40000];
int main()
{
    int n;
    while(cin>>n)
    {
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
            w[i]=1;
        }
        for(int i=1;i<n;i++)
        {
            for(int j=0;j<i;j++)
            {
                if(a[i]>=a[j])
                    w[i]=max(w[i],w[j]+1);
            }
        }
        cout<<*max_element(w,w+n)<<endl;
    }
}

从模板中学到了stl的max_element的用法。

你可能感兴趣的:(max_element)