【二分】[Nescafé II] 防线
来源:互联网 发布:淘宝双12承接页装修 编辑:程序博客网 时间:2024/04/30 13:32
题目链接:http://cojs.tk/cogs/problem/problem.php?pid=1022
分析:
二分答案。
对于每一个二分出的数进行验证。
考虑a[i]表示位置p <= i的总人数,由于奇数点最多1个,设它为ans,则a[i](i < ans)均为偶数,a[i](i >= ans)均为奇数,因此通过二分答案加验证的方法就可以找到其位置。
代码:
#include<iostream>#include<cstdio>#include <climits>#define mn 200100 using namespace std;typedef long long ll;long long T,n,s[mn],e[mn],d[mn];inline long long scan(){ char c=getchar(); while (!isdigit(c)) c=getchar(); long long x=0; while (isdigit(c)) { x=x*10+c-'0'; c=getchar(); } return x;}int main(){freopen("defender.in","r",stdin);freopen("defender.out","w",stdout); T=scan();while (T--){n=scan();for (int i=1;i<=n;i++){s[i]=scan();e[i]=scan();d[i]=scan();}ll l=-1,r=100000000000ll,m;while (l+1<r){ll an=0;m=l+r>>1;for (int j=1;j<=n;j++) {int t=min(m,(ll)e[j]);if (t>=s[j]) an+=((t-s[j])/d[j] +1);}if (an%2==0) l=m;else r=m;}if (r==100000000000ll)printf("There's no weakness.\n");else{ll an=0;for (int j=1;j<=n;j++)if (s[j]<=r && e[j]>=r && ((r-s[j])%d[j]==0) ) an++;cout<<r<<" "<<an<<endl;}}return 0;}
- 【二分】[Nescafé II] 防线
- Nescafé Cappuccino
- 【题】【二分答案】NKOJ3522 防线
- 【Nescafé 17】杯模拟赛
- Nescafé 41-异化多肽polypeptide
- TYVJ P2018 「Nescafé26」小猫爬山
- tyvj P2018 「Nescafé26」小猫爬山
- Tyvj P2018 「Nescafé26」小猫爬山
- 【Nescafé29模拟赛】穿越七色虹
- CJOJ P1893 【Nescafé29模拟赛】穿越七色虹
- 2012 noip征战 第二场模拟比赛--tyvj Nescafé 17 & Poetize 1 杯模拟赛
- CH Round #53 -【Nescafé 32】杯NOIP模拟赛 GCD Path 题解
- CH Round #53 -【Nescafé 32】杯NOIP模拟赛 数据备份 题解
- BSOJ3809 tyvj2054 [Nescafé29]四叶草魔杖 神级骗分 数据之水
- 黑客防线
- P3522防线
- HDU2236 无题II 二分匹配+二分枚举
- 【HDU】2236 无题II 二分+二分匹配
- [hadoop] basic knowlege
- Maven原型骨架及常见问题
- linux-mmc
- 基于NS2和STK的卫星动态组网仿真与演示的研究
- android Layout_weight属性的详解
- 【二分】[Nescafé II] 防线
- UVA 1456 Cellular Network 贪心+概率dp
- OCP-1Z0-053-V12.02-355题
- Spring3 报org.aopalliance.intercept.MethodInterceptor问题解决方法
- 使用jquery.uploadify、jquery.Jcrop和php实现炫酷的图片裁剪
- 头文件的查找方式和库的搜索路径
- Guava库之collect
- 进程上下文VS中断上下文
- 09.集合框架(二)【Set】【HashSet】【TreeSet】