思路就是有零一变化的位Or以后一定是1,And以后一定是0;那么如果b的二进制更长那么就把包含a的部分全部置为1或0,如果一样长那么就把不同的部分置为1或0。

今天被这题坑的地方:1默认是int,如果要移到32bits以上要转成long long用1LL,血的教训。以及,数组开得太极限,很容易出错。

#include<cstdio>
const int maxlen = 61;
typedef long long ll;inline int int2bit(ll x,int *a){int t = 0;while(x) {a[t] = x&1;x >>= 1;t++;}return t;
}
const ll one = 1;
void solve(ll a,ll b,ll &Or,ll &And)
{int b1[maxlen],b2[maxlen];int l1 = int2bit(a,b1);int l2 = int2bit(b,b2);if(l2>l1){ll t =(one<<l2)-1;Or = t;And = 0;return;}if(l2 == l1){int i;for( i = l2-1; i >= 0; i--){if(b1[i]!=b2[i]) break;}ll t = (one<<(i+1))-1;Or = b|t;And = b&~t;}
}int main()
{// freopen("in.txt","r",stdin);// freopen("out.txt","w",stdout);int t;scanf("%d",&t);for(int i = 1; i <= t; i++){ll Or,And,a,b;scanf("%lld%lld",&a,&b);solve(a,b,Or,And);printf("Case %d: %lld %lld\n",i,Or,And);}return 0;
}

转载于:https://www.cnblogs.com/jerryRey/p/4652276.html

UVA 12898 - And Or 与和或 (思路题)相关推荐

  1. AtCoder Grand Contest 004 C - AND Grid(思路题)

    题意: 给你一个n*m的矩阵,矩阵中有.和#,#表示两图重合的部分,边缘没有# 然后要你构造两个n*m的图,要求#是连通的,然后合并之后重合的部分就是原图中的# 思路: 又是一到思路题 当时被B题智商 ...

  2. UVa 1471 Defense Lines (解释紫书思路)

    题目链接:https://cn.vjudge.net/problem/UVA-1471 设序列L表示连续递增子序列: 则最长的L就可以分为两部分,一部分是以j结尾的序列,另一部分是以i为开头的序列 现 ...

  3. uva - 1442(cav 递推类 ,思路)

    由于燃料为流动性物质. 所以利用任意一个有水的地方往左右延伸其水平面一样高, 可以先从左以尽量高的起点往前延伸遇到顶,下降到顶.遇到地面,上升到与地面同高度. 这样再从右往左贪心一边去每个点的最小值即 ...

  4. P3514-[POI2011]LIZ-Lollipop【思路题】

    正题 题目链接:https://www.luogu.org/problemnew/show/P3514 题目大意 一个12序列,若干个询问求有没有一个子串之和为kkk 解题思路 首先感谢ZYCdala ...

  5. 【LeetCode笔记】221. 最大正方形(Java、动态规划、思路题)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 显而易见地可以用dp来写,问题在于如何考虑状态转移方程 思路 & 代码 首先再加一层外墙,就不用边界判断了 maxSqure[i] ...

  6. 【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 首先暴力二层循环肯定可以,然后先累乘整个数组,再用除法肯定也行. 但是很遗憾,两种做法都不满足题目说明. 思路 & 代码 O(n) ...

  7. UVA - 820 Internet Bandwidth(最大流模板题)

    题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...

  8. UVa 10066 - The Twin Towers(LCS水题)

    题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...

  9. zoj 2316 Matrix Multiplication 【思路题】

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2316: 题目大意:给 n*n的矩阵 A,求 A∗AT所有元素和( ...

最新文章

  1. 细细品味C#——Socket编程专题
  2. 论文,成本管理与进度管理(主成本)
  3. 【Linux】一步一步学Linux——ldd命令(251)
  4. PayPal Agility with Stability On OpenStack
  5. 构建完整的微服务(三)
  6. 《C#线程参考手册》读书笔记(三):.NET中的线程池
  7. 数学建模笔记——评价类模型(三)
  8. 被拖欠2个月工资,最后我拿到了6个月《打工人的那些事》
  9. Java NIO 通道(二)通道分散/聚集
  10. 解读PMP考点:质量管理中规划质量、实施质量保证、实施质量控制的对比
  11. 异常检测中的浅层模型与深度学习模型综述(A Unifying Review of Deep and Shallow Anomaly Detection)
  12. 正襟危坐说--操作系统(伍):进程间通信
  13. Fastadmin后台列表外显示额外数据
  14. vue 日期格式化-将时间2020-11-10T12:01:50.942转换成2020-11-10 12:01
  15. 台式计算机经常使用的硬盘是什么尺寸,台式机硬盘和笔记本硬盘能通用吗?有什么区别?...
  16. FMDB - 数据库操作
  17. webservice执行超长引发的两个问题
  18. 高级语言编译/解释流程
  19. 最常见的Git错误都有哪些,如何解决它们?
  20. DolphinScheduler技术分析(八)

热门文章

  1. .net下调用WebService
  2. 策略模式思想及示例代码(Strategy)
  3. JMeter基础之组件的作用域与执行顺序
  4. 无法从计算机验证正在安装驱动,如何修复正在安装的驱动程序未在英特尔计算机上为此计算机验证 | MOS86...
  5. private函数php,php怎么修改private
  6. MySQL关键字constra_mysql总结笔记(一)
  7. python cad 二次开发bom_30.Python前端基础之BOM和DOM
  8. java递归统计_Java类递归计数
  9. linux锁定账号 让其不能修改密码,passwd - 用于让用户可以更改自己的密码
  10. c++读取文件夹下特定文件