最大的位或

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 18    Accepted Submission(s): 17

Problem Description
B君和G君聊天的时候想到了如下的问题。
给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大。
其中|表示按位或,即C、 C++、 Java中的|运算。
 
Input
包含至多10001组测试数据。
第一行有一个正整数,表示数据的组数。
接下来每一行表示一组数据,包含两个整数l,r。
保证 0 <= l <= r <= 1018

 
Output
对于每组数据输出一行,表示最大的位或。
 
Sample Input
5
1 10
0 1
1023 1024
233 322
1000000000000000000
1000000000000000000
 
Sample Output
15
1
2047
511
1000000000000000000
 
Source
题意:中文题面
题解:被选择的两个数中,其中的一个数一定是区间的上界,寻找另一个数 初始全部为1 从高位到低位模拟。
 #include<iostream>
#include<cstdio>
#define ll __int64
using namespace std;
ll l,r;
int t;
int s1[];
int s2[];
int s3[];
int len=;
int len1=;
bool cmp1( int * ss,int *tt)
{
for(int i=len-; i>=; i--)
{
if(ss[i]==tt[i])
continue;
if(ss[i]>tt[i])
return true;
if(ss[i]<tt[i])
return false;
}
return true;
}
bool cmp2( int * ss,int *tt)
{
for(int i=len-; i>=; i--)
{
if(ss[i]==tt[i])
continue;
if(ss[i]>tt[i])
return false;
if(ss[i]<tt[i])
return true;
}
return true;
}
void ans()
{
for(int i=len-; i>=; i--)
{
if(s2[i]==||s1[i]==)
s1[i]=;
}
ll exm=;
ll re=;
for(int i=; i<=len-; i++)
{
if(s1[i])
re+=exm;
exm*=;
}
cout<<re<<endl;
}
int main()
{
scanf("%d",&t);
for(int i=; i<=t; i++)
{
int flag=;
len=;
len1=;
scanf("%I64d %I64d",&l,&r);
ll zha=r;
while(r>)
{
if(r&)
s1[len++]=;
else
s1[len++]=;
r>>=;
}
for(int j=; j<len; j++)
{
s2[j]=;
s3[j]=;
}
while(l>)
{
if(l&)
s3[len1++]=;
else
s3[len1++]=;
l>>=;
}
for(int j=len-; j>=; j--)
{
if(s1[j]==)
continue;
if(s1[j]==)
{
s2[j+]=;
if(cmp1(s2,s3)&&cmp2(s2,s1))
{
ans();
flag=;
break;
}
else
{
s2[j+]=s1[j+];
s2[j]=s1[j];
}
}
}
if(flag==)
cout<<zha<<endl;
}
return ;
}
 

2016年中国大学生程序设计竞赛(合肥)-重现赛1009 HDU 5969的更多相关文章

  1. 2016年中国大学生程序设计竞赛(合肥)-重现赛1001 HDU 5961

    传递 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...

  2. 2016年中国大学生程序设计竞赛(合肥)-重现赛1008 HDU 5968

    异或密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  3. HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))

    朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Descr ...

  4. HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))

    最大的位或 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem De ...

  5. HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)

    异或密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Des ...

  6. HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))

    传递 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)     Problem ...

  7. HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))

    扫雷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  8. HDU 5937 Equation 【DFS+剪枝】 (2016年中国大学生程序设计竞赛(杭州))

    Equation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  9. HDU 5936 Difference 【中途相遇法】(2016年中国大学生程序设计竞赛(杭州))

    Difference Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

随机推荐

  1. php手册杂记

    1, strcmp()是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCI ...

  2. 提取data.frame中的部分数据(不含列标题和行标题)

    ?unlist     Given a list structure x, unlist simplifies it to produce a vector which contains all th ...

  3. MYSQL转换JSON

    http://51strive.com/ <!DOCTYPE html><html><head><meta charset="UTF-8" ...

  4. CentOS 下开启.htaccess

    一般来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以帮我们实现: 网页301重定向.自定义404错误页面.改变文件扩展名.允许 ...

  5. loadrunner常用术语

    1.场景 在loadrunner中主要表现为controller中设计与执行测试用例中的用户场景.主要工作有,在controller中选择虚拟用户脚本.设置虚拟用户数量.配置虚拟用户运行时的行为.选择 ...

  6. 基础笔记3(一)(String StringBuilder StringBuffer 数组)

    ---恢复内容开始--- 1数组.有序的同类型的集合. 2.string :字符串类型:其实就是一个字符数组.添加了private final,所以string是一个不可以变的字符串. String. ...

  7. python的class的__str__()和__repr__()函数

    repr(object) 返回一个可以用来表示对象的可打印字符串首先,尝试生成这样一个字符串,将其传给 eval()可重新生成同样的对象 否则,生成用尖括号包住的字符串,包含类型名和额外的信息(比如地 ...

  8. dubbo配置文件xml校验报错

    配置dubbo服务xml后,程序能正常执行,但validate会出现一些异常: Multiple annotations found at this line: - cvc-complex-type. ...

  9. 用Application和Session统计在线人数[转]

      在Global.asax全局变量文件中,修改其中的 Session_Start 和 Session_End 方法:代码如下: protected void Session_Start(object ...

  10. 三角形及选中取消按钮的css代码

    1.三角形: 1.用传统的方式: .triangle{ background:blue transparent transparent transparent; border-width:100px ...