B - And Or---(2015 NEUQ_ACM summer training #1)
2015-08-05 15:00
435 查看
题目链接:http://7xjob4.com1.z0.glb.clouddn.com/f595a508afa947b5f898ccbdb1e10002
在雨神兼男神的指导下AC了。
题目大意:输入两个数,然后计算中间所有数进行与运算和或运算的到的结果分别是多少?
思路:直接暴力计算肯定会超时. 把a b转换为二进制数,如果是不同位数的因为进位所以会导致&的结果为0,|的结果为2^k-1,k是b的二进制数的位数。同一个二进制位的情况下,从最高位往下比较,碰到某一位不同后,后面的&全部置0,|全部置1(也是进位的原因)。
CODE:
在雨神兼男神的指导下AC了。
题目大意:输入两个数,然后计算中间所有数进行与运算和或运算的到的结果分别是多少?
思路:直接暴力计算肯定会超时. 把a b转换为二进制数,如果是不同位数的因为进位所以会导致&的结果为0,|的结果为2^k-1,k是b的二进制数的位数。同一个二进制位的情况下,从最高位往下比较,碰到某一位不同后,后面的&全部置0,|全部置1(也是进位的原因)。
CODE:
<span style="font-size:24px;">#include <iostream> using namespace std; typedef long long ll; const int maxn=65; int T,cnt=0; ll A,B,OR=0,AND=0; int A_bit[maxn],B_bit[maxn]; int bit(ll x,int *arr){ int leng=0; while(x){ arr[leng++]=x&1; x>>=1; } return leng; } void cal() { ll tmp=1; int leng1=bit(A,A_bit),leng2=bit(B,B_bit); if(leng1!=leng2){ OR=(tmp<<leng2); return ; } else if(leng1==leng2){ while(leng2>0&&A_bit[leng2-1]==B_bit[leng2-1]) leng2--; for(int i=leng2;i<leng1;i++) if(A_bit[i]) AND+=(tmp<<i); OR=(tmp<<leng2)+AND; } return ; } int main() { cin>>T; while(T--){ cnt++; cin>>A>>B; AND=0; cal(); cout<<"Case "<<cnt<<": "<<OR-1<<' '<<AND<<endl; } return 0; }</span>
相关文章推荐
- A - Decoding Baby Boos---(2015 NEUQ_ACM summer training #1)
- C - We Love MOE Girls---(2015 summer training #9)
- hdu 1789 Doing Homework again
- (FFOS Gecko & Gaia) OTA - 再进入Gecko层
- 2015 Multi-University Training Contest 5 hdu 5349 MZL's simple problem
- (FFOS Gecko & Gaia) OTA - 重回Gaia层
- Waited long enough for: ServiceRecord 问题解决
- Debug Assertion Failed! Expression: _pFirstBlock == pHead
- postfix与sendmail冲突
- EZ-USB固件框架的追踪研读之main函数3
- saltstack的深入-再次理解state的基本用法
- EZ-USB固件框架的追踪研读之main函数2
- AIX系统修改系统时间
- (FFOS Gecko & Gaia) OTA - 处理check结果
- GCD Again HDU杭电1787
- NoClassDefFoundError: org/openxmlformats/schemas/drawingml/x2006/main/ThemeDocument
- 编译gaia
- map containsKey与get方法区别经典总结
- RGB-D 图像 (Semantic Pose using Deep Networks Trained on Synthetic RGB-D)
- The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9