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的用法。