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

题目链接: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…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4768 题意:有n个社团发传单,每个社团发给编号为A_i, A_i+C_i,A_i+2*C_i,…A_i+k*C_i (A_i+k*C_i<=B_i, A_i+(k+1)*C_i>B_i)的学生,求收到传单数为奇数的学生的编号和收到的传单数,题目保证最终最多只有一个为奇数. 分析:x^x=0,x^0=x,因为最终最多只有一个奇数,所以如果存在奇数的话,当所有数异或完之后的值为该奇数,如果不存在的话,…
题目链接: 传送门 Flyer Time Limit: 1000MS     Memory Limit: 32768 K Description The new semester begins! Different kinds of student societies are all trying to advertise themselves, by giving flyers to the students for introducing the society. However, due…
Flyer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 386    Accepted Submission(s): 127 Problem Description The new semester begins! Different kinds of student societies are all trying to adver…
思路:由于最多只有一个是奇数,所以二分枚举这个点,每次判断这个点的左边区间段所有点的和作为 二分的依据. 代码如下: #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<set> #include<vector> #define ll long long #define M 20…
<题目链接> <转载于  >>> > 题目链接: n个社团派发传单,有a,b,c三个参数,派发的规则是,派发给序号为a,a+c....a+k*c,序号要求是小于等于b 这其中,有一个学生只收到了奇数传单,要求找出这个学生的编号与得到的传单数目 . 解题分析: 用二分来划分区间,如果左区间传单之和为奇数,则那个学生在左区间,否则在右区间,由于每个社团的区间内得到传单的学生为等差数列,所以可以很容易得到枚举的区间内的传单数. #include <cstdio&g…
题意: 有N个社团,每个社团三个属性A,B,C,表示会向编号A+k*C的同学发传单(k=0,1,2...  && A+k*C <= B).题目保证最多有一个人收到的传单数是奇数.求如果有人收到传单是奇数,输出编号和他收到的传单数. 思路: 观察最后情况,可以发现,要么每个人都是偶数.要么有一个是奇数.观察其前缀和,发现奇数那个人之前的前缀和都是偶数,之后都是奇数.所以,二分之. 代码: (上交大牛代码……) #include <cstdio> #include <c…
2013年长春网络赛1010题 继巴斯博弈(30分钟)签到后,有一道必过题(一眼即有思路). 思路老早就有(40分钟):倒是直到3小时后才被A掉.期间各种换代码姿态! 共享思路: unlucky student flag 如果存在,有且只有one.flyers为基数: 其他student 为偶数.很容易想到以前做过的一道异或题. 过程: (1)通过异或找unlucky. (2)如果找到,再通过分发 flyers的规律取余操作确定 flyers的个数: 由于第二个条件出现了bug,但确信思路比对:…
http://acm.hdu.edu.cn/showproblem.php?pid=2289 二分法解题. 这个题很恶心...一开始测试样例都不能过,这个π一开始取3.1415926结果是99.999026,改为3.1414927,结果是99.999023..我就发现这个π对结果影响很大,这个题对π的精度要求也比较高...然后我的π就改为3.1415926536... 一开始判断跳出二分的条件是结果差值小于0.000000001,发现超时,改为0.01后还是超时...无语了...然后仔细想想,题…
http://acm.hdu.edu.cn/showproblem.php?pid=4768 貌似非常多人是用的二分 可是更好的做法貌似还是异或 对于第k个人.假设他接到偶数个传单.那么异或的结果还是0 就是说op记录全部收到传单的人次的总的异或值.那么由于仅仅有一个是收到奇数次.所以异或值就是他的编号,至于收到几次,在O(n)能够计算 //#pragma comment(linker, "/STACK:102400000,102400000") #include <cstdio…