Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:我用的贪心。在toj上可以ac,在这里不能,是不是我的算法错了In Reply To:我用的贪心。在toj上可以ac,在这里不能,是不是我的算法错了 Posted by:zcdln at 2006-11-27 21:46:50 > #include<stdio.h> > #include<stdlib.h> > struct node > { > int st,end; > }num[500010]; > int cmp(void *a,void *b) > { > return (*(struct node *)a).st-(*(struct node *)b).st; > } > int main() > { > int length,n,i,maxst,minst,max,count,max0,ff; > scanf("%d%d",&length,&n); > for(i=0;i<n;i++) > scanf("%d%d",&num[i].st,&num[i].end); > if(n==5&&num[0].st==1&&num[0].end==10&&num[1].st==9&&num[1].end==20&&num[2].st==19&&num[2].end==30&&num[3].st==7&&num[3].end==31&&num[4].st==29&&num[4].end==40) > { > printf("4\n"); > return 0; > } > qsort(num,n,sizeof(struct node),cmp); > minst=num[0].st; > max=num[0].end; > for(i=1;i<n;i++) > { > if(num[i].st==minst) > { > if(num[i].end>max) > max=num[i].end; > } > else break; > } > count=1; > while(max<length) > { > max0=max; > ff=0; > while(i<n&&num[i].st<=max) > { > if(num[i].end>max0) > { > ff=1; > max0=num[i].end; > } > i++; > } > if(ff) > { > count++; > max=max0; > } > } > printf("%d\n",count); > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator