2016 ccpc HDU 5969 最大的位或
来源:互联网 发布:yum 卸载 编辑:程序博客网 时间:2024/05/21 17:07
最大的位或
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 104 Accepted Submission(s): 62
Problem Description
B君和G君聊天的时候想到了如下的问题。
给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大。
其中|表示按位或,即C、 C++、 Java中的|运算。
给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大。
其中|表示按位或,即C、 C++、 Java中的|运算。
Input
包含至多10001组测试数据。
第一行有一个正整数,表示数据的组数。
接下来每一行表示一组数据,包含两个整数l,r。
保证 0 <= l <= r <=1018 。
第一行有一个正整数,表示数据的组数。
接下来每一行表示一组数据,包含两个整数l,r。
保证 0 <= l <= r <=
Output
对于每组数据输出一行,表示最大的位或。
Sample Input
51 100 11023 1024233 3221000000000000000000 1000000000000000000
Sample Output
15120475111000000000000000000
Source
题目大意:
如题。
思路:
对于 l r 。 我们将 r 转化成二进制 ,对于每个 0 我们考虑他是否能够转化成 1
假设 r 为 1 1 1 0 1 1 1 1
我们假设 r | k = 1 1 1 1 1 1 1 1
k 最大等于什么? 1 1 0 1 1 1 1 1
也就是k = r - 1 1 1 1 - 1 。
所以对于每个 0 我们都这样考虑。最后得到的就是最大值。
AC代码:
#include<bits/stdc++.h>using namespace std;int a[105];int ans[50005];int b[105];long long int pow(int x){ long long int ss=1; for(int i=0;i<x;i++) { ss=ss*2; } return ss;}int main(){ int T; scanf("%d",&T); long long int n,m; int cnt; long long int sum=0; while(T--) { scanf("%I64d%I64d",&n,&m); long long int maxx=m; int ll,rr; int cnt=0; while(m>0) { ans[cnt++]=(m&1); m/=2; } sum=0; for(int i=0;i<cnt;i++) { if(ans[i]==0) { if((maxx-sum-1)>=n) ans[i]=1; } else sum+=pow(i); } sum=0; for(int i=0;i<cnt;i++) { if(ans[i]) { sum+=pow(i); } } cout<<sum<<endl; }}
0 0
- 2016 ccpc HDU 5969 最大的位或
- hdu 5969 最大的位或 ccpc 2016 合肥站
- hdu 5969 最大的位或 2016ACM/CCPC合肥赛区现场赛I
- hdu 5969 最大的位或【贪心】
- HDU 5969 最大的位或
- HDU 5969 最大的位或
- hdu 5969 最大的位或
- hdu 5969 最大的位或 贪心
- HDU 5969最大的位或
- hdu 5969 最大的位或
- HDU 5969 最大的位或
- HDU 5969 最大的位或
- HDU 5969 最大的位或
- HDU 5969 最大的位或
- HDU最大的位或
- 最大的位或 HDU
- 最大的位或 HDU
- 【HDU 5969 最大的位或】 + 异或
- About Path & Classpath
- hdu 5919Sequence II 主席数的应用 2016CCPC长春
- cssRuels和rules的区别
- 第73课: 基于Spark 2.0.1项目 例如注册之后前10天访问我们的移动App最多的前五个人;注册之后前10天内购买商品总额排名前5为的人
- js之运行事件检测
- 2016 ccpc HDU 5969 最大的位或
- maven国内快速镜像,国内maven中央仓库地址
- 服务端关闭session的重要性
- WatsonAPI调用学习
- iOS模拟器目录
- 你不太熟悉的JVM命令配置参数
- Anaconda win8,64下安pygraphviz
- [LeetCode]Remove Duplicates from Sorted List
- python实战--用户答题