2013年长春网络赛1010题

继巴斯博弈(30分钟)签到后,有一道必过题(一眼即有思路)。

思路老早就有(40分钟):倒是直到3小时后才被A掉。期间各种换代码姿态!

共享思路:

  unlucky student flag 如果存在,有且只有one。flyers为基数;

  其他student 为偶数。很容易想到以前做过的一道异或题。

过程:

(1)通过异或找unlucky。

(2)如果找到,再通过分发 flyers的规律取余操作确定 flyers的个数;

由于第二个条件出现了bug,但确信思路比对;所以各种换姿势,Wrang到想死,又各种找tricks。

(期间自然也有在线管理员的ansers的误导)。直到最后让队友完全了解思路才找到bug,然后A掉。

#include<stdio.h>
int main()
{
int i,n;
while(scanf("%d",&n)!=EOF)
{
__int64 ans=;
int a[],b[],c[];
for(i=; i<n; i++)
{
scanf("%d%d%d",&a[i],&b[i],&c[i]);
int x=a[i];
while(x<=b[i])
{
ans=ans^((__int64)x);
x+=c[i];
}
}
int js=;
if(ans)
{
for(i=;i<n;i++)
{
if(ans>=a[i]&&ans<=b[i]&&(ans-a[i])%c[i]==)js++;
//ans>=a[i]&&(ans-a[i])%c[i]==0最初写这样。该死的小bug
//也怪自己改错的重心出了问题,以为是tricks。~~o(>_<)o ~~
}
printf("%I64d %d\n",ans,js);
}
else printf("DC Qiang is unhappy.\n");
}
return ;
}

  

hdu 4768 Flyer (异或操作的应用)的更多相关文章

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

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

  2. 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 ...

  3. HDU 4768 Flyer(二分法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4768 题目大意:每组数据有n行输入,每行有三个数A.B.C,A<=B且小于2^32,从A到B每隔 ...

  4. HDU 4768 Flyer(二分)

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

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

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

  6. hdu 4768 Flyer 二分

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

  7. HDU 4768: Flyer

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

  8. C++ 中的异或操作^

    好好的利用异或能够产生奇妙的效果. 异或运算的性质: 不论什么一个数字异或它自己都等于0.也就是说.假设我们从头到尾依次异或数组中的每个数字,那么终于的结果刚好是那个仅仅出现一次的数字.由于那些出现两 ...

  9. 【js】Leetcode每日一题-数组异或操作

    [js]Leetcode每日一题-数组异或操作 [题目描述] 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == ...

随机推荐

  1. 【4】JDK和CGLIB生成动态代理类的区别

    当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁--代理对象. 按照代理对象的创建时期不同,可以分为两种: 静态代理:事先写好代理对象类,在 ...

  2. kafka ksql && docker 安装试用

    备注: 使用docker 模式进行安装   1. 准备docker 环境(需要docker-compose)      docker 的安装不需要进行多描述了,直接yum 或者源码编译也可以     ...

  3. 给System.Timer类的Elapsed事件加锁

    背景: 最近在做一个项目,程序是命令行程序,在主程序中开一个线程,这个线程用到了System.Timer类的Elapsed事件,根据指定时间间隔循环去查询数据库,找符合条件的记录,把记录组织成xml对 ...

  4. Ubantu中sublime汉化

    1 启动并进入sublime主界面: 2 如图所示,点击菜单栏中“preferences”,弹出选项中找到“package control”: 3 进入下一步,选择“install package”: ...

  5. webpack+vue-cli搭建项目 (vue项目重构三)

    在自己的电脑下载了npm 与 node的情况下 可使用vue-cli快速构建vue项目执行命令如下: # 全局安装 vue-cli$ npm install -g vue-cli# 创建一个基于 &q ...

  6. 从JVM的角度解析String

    1. 字符串生成过程 我们都知道String s = "hello java";会将“hello java”放入字符串常量池,但是从jvm的角度来看字符串和三个常量池有关,clas ...

  7. layui导航的使用

    在项目开发的时候,需要后台的系统好看点,左边的导航需要设计为多级的,而且要点击当前的链接页面,刷新后要实现选中状态 学习源头:http://www.layui.com/doc/element/nav. ...

  8. shell脚本,每5个字符之间插入"|",行末不插入“|”

    文本aaaaabbbbbcccccddddeeeeefffffkkkkkvvvvnnnnnggggg 希望得到的结果如下:aaaaa|bbbbb|ccccc|ddddeeeee|fffff|kkkkk ...

  9. 文件操作方法大全以及文件打开的其他一些模式sys.stdout.write()就是标准输出到你当前的屏幕 sys.stdout.flush()把内存立即显示到您当前的屏幕

    read()会让你读取的光标变成最后.tell()把你现在文件的句柄的指针打印出来.文件的开头指针位置是0f.read(5)只读取5个字符串个数如果你想把光标移回去,移动到首位f.seek(0)f.d ...

  10. zabbix 在linux上安装以及一些配置

    本文章将演示zabbix 3.2版本的安装,供有需要的伙伴们参考: 网络也有很多关于zabbix的安装文档,甚至每一步的配置都有详细的截图,我这里就不演示截图了,多配置几次自然就熟练了.多折腾. 楼主 ...