木棍(贪心)
贪心,排序是必须的。后面的处理应该大家都会的~~
#include <iostream> #include<algorithm> #include<stdio.h> using namespace std; struct data { int s,e; }a[5005]; bool cmp(data a,data b) { if(a.s!=b.s) return a.s<b.s; else return a.e<b.e; } int main() { int n,b[5005]; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%d%d",&a[i].s,&a[i].e); b[i]=1; } sort(a,a+n,cmp); int x; for(int i=0;i<n;i++) { x=0; for(int j=0;j<i;j++) { if(a[i].e<a[j].e&&b[j]+1>x) b[i]=b[j]+1; if(x<b[i]) x=b[i]; } } x=b[0]; for(int i=0;i<n;i++) if(x<b[i]) x=b[i]; cout<<x<<endl; } return 0; }
持续更新博客地址:
blog.csdn.net/martinue