UVA 12898 - And Or 与和或 (思路题)
思路就是有零一变化的位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 与和或 (思路题)相关推荐
- AtCoder Grand Contest 004 C - AND Grid(思路题)
题意: 给你一个n*m的矩阵,矩阵中有.和#,#表示两图重合的部分,边缘没有# 然后要你构造两个n*m的图,要求#是连通的,然后合并之后重合的部分就是原图中的# 思路: 又是一到思路题 当时被B题智商 ...
- UVa 1471 Defense Lines (解释紫书思路)
题目链接:https://cn.vjudge.net/problem/UVA-1471 设序列L表示连续递增子序列: 则最长的L就可以分为两部分,一部分是以j结尾的序列,另一部分是以i为开头的序列 现 ...
- uva - 1442(cav 递推类 ,思路)
由于燃料为流动性物质. 所以利用任意一个有水的地方往左右延伸其水平面一样高, 可以先从左以尽量高的起点往前延伸遇到顶,下降到顶.遇到地面,上升到与地面同高度. 这样再从右往左贪心一边去每个点的最小值即 ...
- P3514-[POI2011]LIZ-Lollipop【思路题】
正题 题目链接:https://www.luogu.org/problemnew/show/P3514 题目大意 一个12序列,若干个询问求有没有一个子串之和为kkk 解题思路 首先感谢ZYCdala ...
- 【LeetCode笔记】221. 最大正方形(Java、动态规划、思路题)
文章目录 题目描述 思路 & 代码 更新版 题目描述 显而易见地可以用dp来写,问题在于如何考虑状态转移方程 思路 & 代码 首先再加一层外墙,就不用边界判断了 maxSqure[i] ...
- 【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)
文章目录 题目描述 思路 & 代码 更新版 题目描述 首先暴力二层循环肯定可以,然后先累乘整个数组,再用除法肯定也行. 但是很遗憾,两种做法都不满足题目说明. 思路 & 代码 O(n) ...
- UVA - 820 Internet Bandwidth(最大流模板题)
题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...
- UVa 10066 - The Twin Towers(LCS水题)
题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...
- zoj 2316 Matrix Multiplication 【思路题】
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2316: 题目大意:给 n*n的矩阵 A,求 A∗AT所有元素和( ...
最新文章
- 细细品味C#——Socket编程专题
- 论文,成本管理与进度管理(主成本)
- 【Linux】一步一步学Linux——ldd命令(251)
- PayPal Agility with Stability On OpenStack
- 构建完整的微服务(三)
- 《C#线程参考手册》读书笔记(三):.NET中的线程池
- 数学建模笔记——评价类模型(三)
- 被拖欠2个月工资,最后我拿到了6个月《打工人的那些事》
- Java NIO 通道(二)通道分散/聚集
- 解读PMP考点:质量管理中规划质量、实施质量保证、实施质量控制的对比
- 异常检测中的浅层模型与深度学习模型综述(A Unifying Review of Deep and Shallow Anomaly Detection)
- 正襟危坐说--操作系统(伍):进程间通信
- Fastadmin后台列表外显示额外数据
- vue 日期格式化-将时间2020-11-10T12:01:50.942转换成2020-11-10 12:01
- 台式计算机经常使用的硬盘是什么尺寸,台式机硬盘和笔记本硬盘能通用吗?有什么区别?...
- FMDB - 数据库操作
- webservice执行超长引发的两个问题
- 高级语言编译/解释流程
- 最常见的Git错误都有哪些,如何解决它们?
- DolphinScheduler技术分析(八)
热门文章
- .net下调用WebService
- 策略模式思想及示例代码(Strategy)
- JMeter基础之组件的作用域与执行顺序
- 无法从计算机验证正在安装驱动,如何修复正在安装的驱动程序未在英特尔计算机上为此计算机验证 | MOS86...
- private函数php,php怎么修改private
- MySQL关键字constra_mysql总结笔记(一)
- python cad 二次开发bom_30.Python前端基础之BOM和DOM
- java递归统计_Java类递归计数
- linux锁定账号 让其不能修改密码,passwd - 用于让用户可以更改自己的密码
- c++读取文件夹下特定文件