标签:dp
刚开始想多了,其实可以贪心的
//刚开始想太多了,其实可以贪心的,每来一个点,接在值最相近的路径后面,如果没有一个比它大的,则另开一条路径 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int inf=9999999; int dp[10005]; int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif int n,tmp; while(scanf("%d",&n)!=EOF){ memset(dp,0,sizeof(dp)); scanf("%d",&tmp); dp[1]=tmp; int k=1; for(int i=2;i<=n;i++){ scanf("%d",&tmp); int mi=inf,post=inf; for(int j=1;j<=k;j++){ if(tmp<=dp[j]) { if(dp[j]<mi) { post=j; mi=dp[j]; } } } if(mi==inf) dp[++k]=tmp; else dp[post]=tmp; } printf("%d\n",k); } }
标签:dp
原文地址:http://blog.csdn.net/lj94093/article/details/45332017