hdu 4768 - Flyer(二分)
2013-09-28 20:06
267 查看
思路:
由 there is at most one student who is unlucky 可知,
如果答案存在的话,那么所有人手中的传单之和肯定是个奇数,否则的话必定是偶数。
根据这一特征进行二分,如果左半部分是奇数的话,那么答案肯定在左半部分,否则的话,在右半部分,
最后最二分的答案检查一下即可。
代码入下:
由 there is at most one student who is unlucky 可知,
如果答案存在的话,那么所有人手中的传单之和肯定是个奇数,否则的话必定是偶数。
根据这一特征进行二分,如果左半部分是奇数的话,那么答案肯定在左半部分,否则的话,在右半部分,
最后最二分的答案检查一下即可。
代码入下:
int n, a[M], b[M], c[M]; LL L(LL x) { LL sum = 0; for(int i = 0; i < n; ++i) if(x>=a[i]) sum += (min((LL)b[i],x)-a[i])/c[i]+1; return sum; } LL check(LL x) { LL sum = 0; for(int i = 0; i < n; ++i) if(x>=a[i]&&x<=b[i]) if((x-a[i])%c[i]==0) sum += 1; return sum; } int main() { while(~scanf("%d", &n)) { for(int i = 0; i < n; ++i) scanf("%d%d%d", &a[i], &b[i], &c[i]); LL l = 1, r = 1LL<<32, mid, ans; while(l<r) { mid = l+(r-l)/2; if(L(mid)&1) r = mid; else l = mid+1; } if((ans=check(l)) & 1) printf("%I64d %I64d\n", l, ans); else printf("DC Qiang is unhappy.\n"); } return 0; }
相关文章推荐
- hdu 4768 Flyer 长春网络赛 1010 二分
- hdu 4768 Flyer【二分】
- HDU 4768 Flyer(13年长春网络赛-J题-二分)
- HDU 4768 Flyer(13年长春网络赛-J题-二分)
- hdu 4768 Flyer(二分查找)
- HDU 4768 Flyer(二分)
- HDU 4768 Flyer(二分)
- HDU 4768 Flyer 二分
- HDU 4768Flyer(二分 自己思维太死了)
- HDU 4768 Flyer (二分)
- hdu 4768 Flyer 二分
- hdu 4768 Flyer 二分(2013 ACM/ICPC Asia Regional Changchun Online 1010)
- HDU 4768 Flyer (二分、位运算)
- HDU 4768 Flyer(二分)
- hdu 4768 Flyer (二分)
- 二分-hdu-4768-Flyer
- hdu 4768 Flyer 二分
- HDU 4768 Flyer(二分)
- HDU 4768 Flyer (2013长春网络赛1010题,二分)
- 二分-hdu-4768-Flyer