标签:
http://acm.hdu.edu.cn/showproblem.php?pid=1160
#include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <queue> using namespace std; struct Node { int w,s,id,fa; }; Node mice[1000+10]; int dp[1000+10]; int cmp(Node a,Node b) { return a.w<b.w; } int main() { int i,j,k; int cnt=1; int t1,t2; int ans,ansn; while(scanf("%d%d",&t1,&t2)!=EOF) { if(t1==-1) break; mice[cnt].w=t1; mice[cnt].s=t2; mice[cnt].id=cnt; cnt++; } sort(mice+1,mice+cnt,cmp); ans=mice[cnt-1].id; ansn=1; for(i=1;i<cnt;i++) { mice[i].fa=i; dp[i]=1; } for(i=cnt-2;i>=1;i--) { for(j=i+1;j<cnt;j++) { if(dp[j]+1>dp[i]&&mice[i].w<mice[j].w&&mice[i].s>mice[j].s) { dp[i]=dp[j]+1; mice[i].fa=j; } } if(dp[i]>ansn) {ans=i;ansn=dp[i];} } /* for(i=1;i<cnt;i++) { printf("%d %d %d %d\n",mice[i].w,mice[i].s,dp[i],mice[i].fa); }*/ printf("%d\n",ansn); while(mice[ans].fa!=ans) { printf("%d\n",mice[ans].id); ans=mice[ans].fa; } printf("%d\n",mice[ans].id); return 0; }
标签:
原文地址:http://www.cnblogs.com/sola1994/p/4346083.html