最大的位或

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. faster alter table add column

    Create a new table (using the structure of the current table) with the new column(s) included. execu ...

  2. js判断鼠标进入以及离开容器的方向

      (注:以下代码涉及到jQuery,建议前端大牛绕路~~~) 1.遇到的问题      如图当鼠标右箭头位置上下移动的时候  下面的城市列表容器不能隐藏. 2.方法: 网上搜了些前端大牛们的解决办法 ...

  3. 《BI那点儿事》三国人物智力分布状态分析

    献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解数据分析基础概念:数据分为“不可测量”的数据和“可测量”的数据.不可测量的数据称为“分类数据”(Category Data或 ...

  4. 《BI项目笔记》创建父子维度

    创建步骤: 而ParentOriginID其实就是对应的ParentOriginID,它的 Usage 必须是 Parent 才能表示这样的一个父子维度. 查看OriginID属性, Usage 是 ...

  5. Flyweight

    1 意图:运用共享技术有效地大量支持细粒度的对象 2 动机:flyweight是一个共享对象,可以在多个场景使用. 分为内部状态和外部状态,内部状态存储于flyweight中,包含了独立于flywei ...

  6. gcc -fvisibility=hidden,-fPIC选项

    1. http://www.tuicool.com/articles/fy6Z3aQ 2. http://www.ibm.com/developerworks/cn/linux/l-cn-sdlsta ...

  7. python核心编程第六章练习6-11

    6-11.转换.(a)创建一个从整型到IP地址的转换,如下格式:www.xxx.yyy.zzz.(b)更新你的程序,使之可以逆转换.[答案](a)代码如下: Input_number = abs(in ...

  8. (37) 在命令行调用API

    l 前言 有时为了更好地调整和改动数据会和到cli ,这会给我们带来更高的效率,基于官网的文档很是简单,这里就带大家一起运用 cli l 搭建 在项目下面有文件odoo.py 这个文件 ,对就是用这个 ...

  9. 关于extra加强延迟加载

    一对多和多对多关联的查询策略 lazy属性的另一个属性extra 加强延迟加载 表明采用增强延迟加载策略:在<set>元素配置lazy属性为"extra".增强延迟加载 ...

  10. 转:在支持ARC工程中编译不支持ARC的文件

    转:http://blog.csdn.net/duxinfeng2010/article/details/8709697 实践总结:-fno-objc-arc 设置 解决了 旧代码中存在 releas ...