【NWPU2018 练着玩】入门班day1 枚举贪心[Cloned] F - Claris and XOR (HDU-5661 Claris and XOR )
题目链接: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 )相关推荐
- 阿里云“7天实践训练营”入门班第二期学习笔记 第五天 在线编程挑战
阿里云"7天实践训练营"入门班第二期学习笔记 第五天 在线编程挑战 吾辈,完全不会编程 以下内容全程来自阿里云社区的大佬分析讲解 原题目 知识点:搜索.字符串.位运算 有一天Jer ...
- 【技术培训】招收Jeecg门徒 ---javaweb初级入门班
招收Jeecg门徒[javaweb初级入门班] 最近准备带徒弟,带些人才出来,我带徒弟的理念是实践为王,在实践中掌握原理,积累经验. 我带徒弟的方向是JAVA WEB,掌握各种主流框架.(后期会开展j ...
- TypeScript入门教程 之 枚举 Enums
TypeScript入门教程 之 枚举 Enums 枚举是一种组织相关值集合的方法.许多其他编程语言(C / C#/ Java)具有enum数据类型,而JavaScript没有.但是,TypeScri ...
- 牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹
题单链接:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) P1001 方块与收纳盒 传送门:1001-方块与收纳盒_2021秋季 ...
- Nick英语入门班笔记
Nick大爷的英语入门班笔记 感谢Nick大爷提供的入门班视频 文章目录 谓语 状语 宾语 同位语 定语 五大基本句型 特殊主系表句型构成方式 名词 代词 形容词 动词 冠词 一般现在时态 一般过去时 ...
- Cocos Creator 开发QQ玩一玩入门到放弃?
Cocos Creator 开发QQ玩一玩入门到放弃? 文章目录 Cocos Creator 开发QQ玩一玩入门到放弃? 1.环境搭建 1.1 开发工具准备 1.1.2 官方站点 1.1.3 编辑器使 ...
- 牛客竞赛语法入门班顺序结构习题C++版本参考代码及部分解析
牛客竞赛语法入门班顺序结构习题 C语言版本的参考代码 重点题: 1005 乘法表 1006 KiKi学程序设计基础 1017 水题再次来袭:明天星期几? 1018 开学? 1019 helloworl ...
- 【python】牛客竞赛语法入门班顺序结构习题 python解法
题目链接:牛客竞赛语法入门班顺序结构习题_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 目录 1001 这是一道签到题 1002 排列式 1003 小飞机 1004 学 ...
- 1737 - 满足三条件之一需改变的最少字符数 - 枚举 - 贪心
欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 文章目录 题目描述 题目剖析&信息挖掘 解题思路 方法一 枚举+贪心 分析 思路 注意 知识点 复杂度 代码实现 相关题 ...
最新文章
- 【小记】批处理FOR循环中的参数/D
- 潘石屹 python 知乎_如何看待地产大佬潘石屹微博宣布学习python这件事?对我们有什么启发?...
- JavaScript、HTML、CSS学习—思维导图
- C#中的Lock锁深入理解
- 经典php代码,HTML_php教程:经典PHP代码,经典循环例子
HTMLHEAD - phpStudy
- Linux中的【.】【./】【/】代表的含义【转载】
- 情况控件Android layout_weight用法图解
- 微信公号“架构师之路”学习笔记(七)-互联网搜索架构设计
- 京东上线“友家铺子”,社区团购进入洗牌阶段
- harmonyos演示,HarmonyOS 2.0 跨屏演示:手机编辑内容跨到平板,自动优化排版
- java中取值保留小数点后两位的四种方法
- 报告老板,我们的H5页面在iOS11系统上白屏了!
- 如何在graphpad表示出正负误差_正负公差表示方法
- Qt图形化界面—迷宫最短路径问题
- brew的MAC安装
- 【优麒麟】22.04 LTS版本即将发布,终极预告来袭,你准备好了吗?
- 共享 满城尽带黄金甲 在线免费观看网址
- Docker练习安装
- Mx Linux 截图工具-shutter
- 方太水槽洗碗机好吗?森歌洗碗机怎么样?买家用洗碗机前必看