题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4768

题目大意:每组数据有n行输入,每行有三个数A、B、C,A<=B且小于2^32,从A到B每隔C个数发一份传单,最后所有发过传单的数中每一个数发了奇数次传单的是倒霉的那个人,倒霉的人最多只有1个。如果存在这个人输出他的序号和传单数,否则输出“DC Qiang is unhappy”

Sample Input
2
1 10 1
2 10 1
4
5 20 7
6 14 3
5 9 1
7 21 12
 
Sample Output
1 1
8 1

分析:直接模拟会超时,二分的奇妙运用

代码如下:

 # include<iostream>
# include<cstdio>
# include<algorithm>
# define LL __int64
# define maxn
using namespace std; LL a[maxn],b[maxn],c[maxn];
int n; int judge(LL l,LL r)
{
LL ret=;
for(int i=; i<=n; i++)
{
if(l>b[i] || r<a[i]) continue;
int k=a[i];
int j=min(r,b[i]);
if(j<k) continue;
ret += max(0LL, (j-k)/c[i]+);
}
if(ret% == )
return ;
return ;
} int main()
{
while(scanf("%I64d",&n)!=EOF)
{
for(int i=; i<=n; i++)
scanf("%I64d%I64d%I64d",&a[i],&b[i],&c[i]);
LL l=;
LL r=;  //可用(__int64)1 << 32 + 1代替,必须加 __int64
LL tmp = -;
while(l<=r)
{
LL mid=(l+r)/;
if(judge(,mid))
{
r = mid - ;
tmp = mid;
}
else
l= mid+;
}
if(tmp==-)
printf("DC Qiang is unhappy.\n");
else
{
int ans = ;
for(int i=; i<=n; i++)
if(a[i]<=tmp && b[i]>=tmp &&(tmp-a[i])%c[i]==)
ans ++;
printf("%I64d %d\n",tmp,ans);
}
}
return ;
}

HDU 4768 Flyer(二分法)的更多相关文章

  1. 2013长春网赛1010 hdu 4768 Flyer

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4768 题意:有n个社团发传单,每个社团发给编号为A_i, A_i+C_i,A_i+2*C_i,…A_i ...

  2. HDU 4768 Flyer(二分)

    题目链接: 传送门 Flyer Time Limit: 1000MS     Memory Limit: 32768 K Description The new semester begins! Di ...

  3. HDU 4768 Flyer (2013长春网络赛1010题,二分)

    Flyer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. hdu 4768 Flyer 二分

    思路:由于最多只有一个是奇数,所以二分枚举这个点,每次判断这个点的左边区间段所有点的和作为 二分的依据. 代码如下: #include<iostream> #include<cstd ...

  5. HDU 4768 Flyer【二分】||【异或】

    <题目链接> <转载于  >>> > 题目链接: n个社团派发传单,有a,b,c三个参数,派发的规则是,派发给序号为a,a+c....a+k*c,序号要求是小 ...

  6. HDU 4768: Flyer

    题意: 有N个社团,每个社团三个属性A,B,C,表示会向编号A+k*C的同学发传单(k=0,1,2...  && A+k*C <= B).题目保证最多有一个人收到的传单数是奇数. ...

  7. hdu 4768 Flyer (异或操作的应用)

    2013年长春网络赛1010题 继巴斯博弈(30分钟)签到后,有一道必过题(一眼即有思路). 思路老早就有(40分钟):倒是直到3小时后才被A掉.期间各种换代码姿态! 共享思路: unlucky st ...

  8. hdu 2289 Cup (二分法)

    http://acm.hdu.edu.cn/showproblem.php?pid=2289 二分法解题. 这个题很恶心...一开始测试样例都不能过,这个π一开始取3.1415926结果是99.999 ...

  9. hdu 4768 异或运算

    http://acm.hdu.edu.cn/showproblem.php?pid=4768 貌似非常多人是用的二分 可是更好的做法貌似还是异或 对于第k个人.假设他接到偶数个传单.那么异或的结果还是 ...

随机推荐

  1. php 接收 Content-Type 是 application/json的请求数据

    工作中为其他公司编写了一个提供请求的接口,自己调试的时候是用form提交的,所以可以用$_POST取键接收方式,而对接联调的时候发现总是取不到数据,把$_POST整个序列化放入日志也是[] ,空的,于 ...

  2. 【Away3D代码解读】(五):动画模块及骨骼动画

    动画模块核心存放在away3d.animators包里: Away3D支持下面几种动画格式: VertexAnimator:顶点动画 SkeletonAnimator:骨骼动画 UVAnimator: ...

  3. USACO Feb. 2012

    Moo 找规律 吧 第一个是很久以前自己写的递归 #include<stdio.h> __int64 n; __int64 dfs(__int64 l,__int64 r,__int64 ...

  4. 使用 StoryBoard 的时候加入用户引导页面

    如果想让一个APP加上引导页面是一个非常完美的举动 但是,总会遇到一些问题 (不要忘记在APDelegate里面加上用户引导页面的头文件和程序启动时的第一个页面哦) 情况一:纯代码 判断是否是第一次启 ...

  5. Using breakpad in cocos2d-x 3.2,dump信息收集

    作者:HU 转载请注明,原文链接:http://www.cnblogs.com/xioapingguo/p/4037268.html 一.基本步骤 1.生成转换工具 2.把breakpad加入到项目 ...

  6. Tomcat启用HTTPS(生成证书、配置Tomcatserver)

    Windows下的配置: 第一步:为server生成证书 使用keytool 为 Tomcat 生成证书.假定目标机器的域名是" localhost ". keystore 文件存 ...

  7. Android ADB使用之详细篇

    Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的. ADB概述 Android Debug Bridge,Androi ...

  8. IE jquery mouseenter,mouseover超奇葩问题

    做了个项目,结构很简单 <div class="index-main" data-url="./img/index_default.jpg"> &l ...

  9. 一、 Socket之UDP异步传输文件

    用SCOKET 发送文件是一个不太好处理的问题,网上的例子也都是很简单的,我准备写一个比较完善的例子,这个就算是开始吧,以后的都会在这个例子的基础上进行修改,准备实现多线程传输.断点传输和文件传输的完 ...

  10. php代理请求

    $url = 'http://192.168.5.241:8893/index.php?a=SendMessage&m=taskSend'; $ci = curl_init ();/* Cur ...