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 |
怎么我的代码这么挫...In Reply To:几个月前看过,但就是想不明白,今天一见,其实是很简单的题! Posted by:alpc47 at 2008-09-30 16:14:31 唉...传说中楼教主5min过的题..搞了一小时.. #include<iostream> #include<algorithm> using namespace std; bool is[10000]; struct node{ int x,y,index; }nod[10000]; bool cmpx(node n1,node n2) { return n1.x<n2.x; } bool cmpy(node n1,node n2) { return n1.y<n2.y; } int main() { //freopen("0.txt","r",stdin); //freopen("1.txt","w",stdout); int n,i; //// while(scanf("%d",&n)+1&&n){ for(i=0;i<n;i++){ scanf("%d%d",&nod[i].x,&nod[i].y); nod[i].index=i; }memset(is,0,sizeof(is)); sort(nod,nod+n,cmpx); int minn=0x7fffffff,temp=0x7fffffff; for(i=0;i<n;i++){ if(nod[i].y>=minn)is[nod[i].index]=1; if(i!=n-1&&nod[i].x==nod[i+1].x){ temp=min(temp,nod[i].y); } else{ minn=min(minn,min(temp,nod[i].y)); } } sort(nod,nod+n,cmpy); minn=0x7fffffff,temp=0x7fffffff; for(i=0;i<n;i++){ if(nod[i].x>=minn)is[nod[i].index]=1; if(i!=n-1&&nod[i].y==nod[i+1].y){ temp=min(temp,nod[i].x); } else{ minn=min(minn,min(temp,nod[i].x)); } } int sum=0; for(i=0;i<n;i++)if(!is[i])sum++; printf("%d\n",sum); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator