题目链接:https://vjudge.net/contest/246949#problem/F

先参考大佬的博客:

https://blog.csdn.net/idealism_xxm/article/details/51112303

通过这道题发现学会用位运算真的可以让程序简便很多。比如:

都是让接下来的所有位数全部变为1

和:

差距就明显了。。。

至于这题的细节我说明一下:

(1)

解释:

本来y的这一位可以取0/1的,比如0010 / 1100,但是现在这里强制取了1,所以下界最小值变成了1000,所有原本这里取0的值全部舍去,原本上界为1111,现在同样可以取到1111,所以上界不用改。同理,如果这一位强制取0,则左右原本这里是1的所有数全部舍去,即最大值变为了0111,但是现在下界不用变,因为原本最小值是0000,现在照样可以取到0000。

(2)

比如第i位x和y都可以取0/1,这里假如x取1,y取0,所以10000<=x<=11111 , 00000<=y<=011111 , 所以i-1位一直向右到第0位都可以取到0/1(无论x/y都是如此)

(3)

至于高端玩家的

这种写法老百姓还是不要轻易模仿,还是像我这样的稳如老狗的比较安全:

代码:

//F - Claris and XOR
#include<stdio.h>
#include<string.h>
typedef long long LL;int main()
{int i;int kase;LL a,b,c,d;LL cur;LL aa,bb,cc,dd;LL ans;scanf("%d",&kase);while(kase--){scanf("%lld%lld%lld%lld",&a,&b,&c,&d);ans=0;for(cur=(LL)1<<62;cur>0;cur>>=1){aa=a&cur;//记录a在这一位的数字bb=b&cur;cc=c&cur;dd=d&cur;if(aa==bb){if(cc==dd)ans|=aa^cc;else//y的这一位可取0或1{ans|=cur;if(aa==0)//意思是y在这一位必须取1,贪心得到最大值c&=cur;else//y在这一位必须取0,需要改变上界d|=cur-1;}}else//x在这一位可取0/1{ans|=cur;if(cc==dd)//y在这一位只能取一个{ans|=cur;if(cc==0)//y只能在这一位取0,则x必须取1,需要改变下界a&=cur;elseb|=cur-1;}else//x和y都是在这一位任意取一个{//ans|=cur-1;while(cur){ans|=cur;cur>>=1;}break;}}}printf("%lld\n",ans);}return 0;
}

【NWPU2018 练着玩】入门班day1 枚举贪心[Cloned] F - Claris and XOR (HDU-5661 Claris and XOR )相关推荐

  1. 阿里云“7天实践训练营”入门班第二期学习笔记 第五天 在线编程挑战

    阿里云"7天实践训练营"入门班第二期学习笔记 第五天 在线编程挑战 吾辈,完全不会编程 以下内容全程来自阿里云社区的大佬分析讲解 原题目 知识点:搜索.字符串.位运算 有一天Jer ...

  2. 【技术培训】招收Jeecg门徒 ---javaweb初级入门班

    招收Jeecg门徒[javaweb初级入门班] 最近准备带徒弟,带些人才出来,我带徒弟的理念是实践为王,在实践中掌握原理,积累经验. 我带徒弟的方向是JAVA WEB,掌握各种主流框架.(后期会开展j ...

  3. TypeScript入门教程 之 枚举 Enums

    TypeScript入门教程 之 枚举 Enums 枚举是一种组织相关值集合的方法.许多其他编程语言(C / C#/ Java)具有enum数据类型,而JavaScript没有.但是,TypeScri ...

  4. 牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹

    题单链接:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)  P1001 方块与收纳盒 传送门:1001-方块与收纳盒_2021秋季 ...

  5. Nick英语入门班笔记

    Nick大爷的英语入门班笔记 感谢Nick大爷提供的入门班视频 文章目录 谓语 状语 宾语 同位语 定语 五大基本句型 特殊主系表句型构成方式 名词 代词 形容词 动词 冠词 一般现在时态 一般过去时 ...

  6. Cocos Creator 开发QQ玩一玩入门到放弃?

    Cocos Creator 开发QQ玩一玩入门到放弃? 文章目录 Cocos Creator 开发QQ玩一玩入门到放弃? 1.环境搭建 1.1 开发工具准备 1.1.2 官方站点 1.1.3 编辑器使 ...

  7. 牛客竞赛语法入门班顺序结构习题C++版本参考代码及部分解析

    牛客竞赛语法入门班顺序结构习题 C语言版本的参考代码 重点题: 1005 乘法表 1006 KiKi学程序设计基础 1017 水题再次来袭:明天星期几? 1018 开学? 1019 helloworl ...

  8. 【python】牛客竞赛语法入门班顺序结构习题 python解法

    题目链接:牛客竞赛语法入门班顺序结构习题_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 目录 1001 这是一道签到题 1002 排列式 1003 小飞机 1004 学 ...

  9. 1737 - 满足三条件之一需改变的最少字符数 - 枚举 - 贪心

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 文章目录 题目描述 题目剖析&信息挖掘 解题思路 方法一 枚举+贪心 分析 思路 注意 知识点 复杂度 代码实现 相关题 ...

最新文章

  1. 【小记】批处理FOR循环中的参数/D
  2. 潘石屹 python 知乎_如何看待地产大佬潘石屹微博宣布学习python这件事?对我们有什么启发?...
  3. JavaScript、HTML、CSS学习—思维导图
  4. C#中的Lock锁深入理解
  5. 经典php代码,HTML_php教程:经典PHP代码,经典循环例子 HTMLHEAD - phpStudy
  6. Linux中的【.】【./】【/】代表的含义【转载】
  7. 情况控件Android layout_weight用法图解
  8. 微信公号“架构师之路”学习笔记(七)-互联网搜索架构设计
  9. 京东上线“友家铺子”,社区团购进入洗牌阶段
  10. harmonyos演示,HarmonyOS 2.0 跨屏演示:手机编辑内容跨到平板,自动优化排版
  11. java中取值保留小数点后两位的四种方法
  12. 报告老板,我们的H5页面在iOS11系统上白屏了!
  13. 如何在graphpad表示出正负误差_正负公差表示方法
  14. Qt图形化界面—迷宫最短路径问题
  15. brew的MAC安装
  16. 【优麒麟】22.04 LTS版本即将发布,终极预告来袭,你准备好了吗?
  17. 共享 满城尽带黄金甲 在线免费观看网址
  18. Docker练习安装
  19. Mx Linux 截图工具-shutter
  20. 方太水槽洗碗机好吗?森歌洗碗机怎么样?买家用洗碗机前必看

热门文章

  1. 用python写一段表白代码
  2. ajax中 submithandler,jQuery使用submitHandler中的AJAX验证,第二次点击提交?
  3. iOS直播:LFLiveKit + RTMP实现直播推流
  4. 输入框回车多个文本_Excel回车键的五大高效率操作,80%人还被蒙在鼓里
  5. 清明节全网灰色主题CSS
  6. 家用投影仪测评,家庭影院用什么投影仪
  7. 微信小程序可用的第三方库
  8. python3.8与pip3安装
  9. 2021中国智慧城市AIoT应用研究 附下载
  10. 北航教授证实运营商降低4G速度迫用户升级5G,难怪5G用户那么少