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:这题二分过了的请试试这个数据,,至少网上二分的代码没人能过In Reply To:Re:这题二分过了的请试试这个数据,,至少网上二分的代码没人能过 Posted by:2333hhh at 2018-09-18 13:30:23 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<string> #include<stack> #include<queue> #include<vector> #include<map> #include<set> using namespace std; typedef long long ll; int N,C,F; struct node { int score,aid,rk; }; node cow[100000+5]; bool cmp1(node a,node b) { return a.score<b.score; } bool cmp2(node a,node b) { return a.aid<b.aid; } void show(int i) { printf("score:%d aid:%d rk:%d ",cow[i].score,cow[i].aid,cow[i].rk); } void show2() { int i; for(i=0;i<C;i++) { show(i); printf("\n"); } } int bina(int p) { //printf("pivet:");show(p);printf("\n"); int i; int l=0,r=0; int nd=N/2; int money=cow[p].aid; for(i=0;i<C;i++) { if(cow[i].rk>cow[p].rk&&r<nd&&money+cow[i].aid<=F) { // printf("GRETER:");show(i); r++; money+=cow[i].aid; } else if(cow[i].rk<cow[p].rk&&l<nd&&money+cow[i].aid<=F) { // printf("LESS:");show(i); l++; money+=cow[i].aid; } } //printf("\n"); if(l==nd&&r==nd)return 1; else if(l<nd)return 2; else return 3; } int main() { scanf("%d%d%d",&N,&C,&F); int i; for(i=0;i<C;i++) scanf("%d%d",&cow[i].score,&cow[i].aid); sort(cow,cow+C,cmp2); int s=0; for(i=0;i<N;i++)s+=cow[i].aid; if(s>F) { printf("-1"); return 0; } s-=cow[N-1].aid; for(i=C-1;i>=0;i--) { if(cow[i].aid+s>F) C--; } sort(cow,cow+C,cmp1); int ans=cow[0].score; for(i=0;i<C;i++)cow[i].rk=i; sort(cow,cow+C,cmp2); //show2(); int l=0; int r=C-1; int mid; while(l<=r) { mid=(l+r)>>1; for(i=0;i<C;i++) if(cow[i].rk==mid) { break; } int t=bina(i); if(t==1) { if(ans<cow[i].score)ans=cow[i].score; l=mid+1; } else if(t==2) { l=mid+1; } else { r=mid-1; } } printf("%d",ans); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator