hdu 4768 Flyer 二分(2013 ACM/ICPC Asia Regional Changchun Online 1010)
2013-09-28 18:38
441 查看
题意:输入个数n和n个ai,bi,ci。编号为ai,ai+ci,ai+2*ci,...ai+k*ci(ai+k*ci<=bi)都能获得一份标签。保证至多有一个人获得奇数的标签。问获得标签的人的编号和标签数。
题解:可通过编号奇偶的个数判断是否存在奇数标签的人,这样就能二分求解了。比如编号1,1,2,3,3,6,6,。奇数4个,偶数3个。所以存在某个偶数编号有奇数的标签。
还有需要__int64,我的队友没有__int64也过了。。,不知道有什么差别。
耗时:46MS
题解:可通过编号奇偶的个数判断是否存在奇数标签的人,这样就能二分求解了。比如编号1,1,2,3,3,6,6,。奇数4个,偶数3个。所以存在某个偶数编号有奇数的标签。
还有需要__int64,我的队友没有__int64也过了。。,不知道有什么差别。
耗时:46MS
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> using namespace std; typedef __int64 LL; const LL maxn=2e4+10; const LL INF=0x3fffffff; struct node{ LL a,b,c; }e[maxn]; LL n; bool find(LL l,LL r)//判断编号l到r之间的获得标签的奇偶个数,从而判断是否存在奇数标签的人。 { //cout<<l<<" "<<r<<endl; LL odd,even,i,j,k,a,b,c,d; odd=even=0; for(i=0;i<n;i++) { a=max(l,e[i].a); b=min(r,e[i].b); if(a>b)continue; c=(b-e[i].a)/e[i].c+1; if(a-1<e[i].a)d=0; else d=(a-e[i].a-1)/e[i].c+1; // cout<<c<<" "<<d<<endl; // cout<<e[i].a<<" "<<e[i].c<<endl; if(e[i].c&1) { if(e[i].a&1){odd+=(c+1)/2-(d+1)/2;even+=c/2-d/2;} else{odd+=c/2-d/2;even+=(c+1)/2-(d+1)/2;} } else { if(e[i].a&1)odd+=c-d; else even+=c-d; } } //cout<<"***"<<odd<<" "<<even<<endl; if(odd%2||even%2)return true; return false; } int main() { while(scanf("%I64d",&n)!=EOF) { LL i,j,k,l=INF,r=-1; for(i=0;i<n;i++) { scanf("%I64d%I64d%I64d",&e[i].a,&e[i].b,&e[i].c); if(e[i].a<l)l=e[i].a; if(e[i].b>r)r=e[i].b; } //cout<<find(1,1)<<endl; if(!find(l,r)){printf("DC Qiang is unhappy.\n");continue;}//无解情况 LL mid; while(l<r)//二分求解 { mid=(l+r)/2; if(find(l,mid))r=mid; else l=mid+1; } LL ans,num=0; ans=l; for(i=0;i<n;i++) { if(e[i].a<=ans&&e[i].b>=ans&&(ans-e[i].a)%e[i].c==0)num++; } printf("%I64d %I64d\n",ans,num); } return 0; }
相关文章推荐
- 2013 ACM/ICPC Asia Regional Changchun Online Problem J & hdu4768 Flyer(二分)
- hdu 4762 Cut the Cake 概率(2013 ACM/ICPC Asia Regional Changchun Online 1004)
- hdu 5443 The Water Problem 水题 2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5437.Alisha’s Party【2015 ACM/ICPC Asia Regional Changchun Online】【优先队列】9月14
- HDU 5441.Travel【2015 ACM/ICPC Asia Regional Changchun Online】【并查集】9月18
- HDU 5444 Elven Postman 2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5438.Ponds【2015 ACM/ICPC Asia Regional Changchun Online】【DFS】9月13
- hdu 4276 The Ghost Blows Light(2012 ACM/ICPC Asia Regional Changchun Online )
- hdu 5438 Ponds 拓扑排序+并查集 2015 ACM/ICPC Asia Regional Changchun Online
- hdu 5444 Elven Postman 树的先序遍历 2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5446 Unknown Treasure(中国剩余定理+卢卡斯定理)——2015 ACM/ICPC Asia Regional Changchun Online
- hdu 4737 A Bit Fun 数列(2013 ACM/ICPC Asia Regional Chengdu Online 1010)
- 2013 ACM/ICPC Asia Regional Changchun Online
- HDOJ-5446/2015 ACM/ICPC Asia Regional Changchun Online 1010(数论)
- HDU 5444.Elven Postman【2015 ACM/ICPC Asia Regional Changchun Online】【二叉树建立与遍历】9月14
- HDU 5437 Alisha’s Party (Priority_queue)2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5437 Alisha’s Party(优先队列+模拟)——2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5444 Elven Postman(链表实现二叉搜索树)——2015 ACM/ICPC Asia Regional Changchun Online
- hdu 5444 Elven Postman(根据先序遍历和中序遍历求后序遍历)2015 ACM/ICPC Asia Regional Changchun Online
- 2013 ACM/ICPC Asia Regional Changchun Online