hdu 5969 最大的位或
最大的位或
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 655 Accepted Submission(s): 293
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
Sample Output

#include <stdio.h>
#include <string.h> typedef long long LL; LL l,r,Max;
char bit_l[];
char bit_r[];
char temp[]; LL StrToNum(char s[])//二进制字符变数字
{
int len=strlen(s);
LL ans=,res=;
for (int i=len-;i>=;i--)
{
if (s[i]=='')
ans+=res;
res*=;
}
return ans;
} void NumToStr(LL x)//数字变二进制字符串
{
if (x==)
{
temp[]='';
temp[]='\0';
return ;
}
char s[];
int pos=;
while (x!=)
{
int tt=x%;
if (tt==)
s[pos++]='';
else if (tt==)
s[pos++]='';
x/=;
}
s[pos]='\0';
int i;
for (i=;i<pos;i++)
temp[i]=s[pos--i];
temp[i]='\0';
} int main()
{
int i,j,t;
char test[];
scanf("%d",&t);
while (t--)
{
Max=-;
scanf("%I64d%I64d",&l,&r);
if (l==r)
{
printf("%lld\n",l|r);
continue;
}
NumToStr(l);
strcpy(bit_l,temp);
NumToStr(r);
strcpy(bit_r,temp); strcpy(test,bit_r);
int len_l=strlen(bit_l);
int len_r=strlen(bit_r);
for (i=;i<len_r-len_l;i++)
{
test[i]='';
}
for (j=;j<=len_l;j++)
{
test[i++]=bit_l[j];
}
strcpy(bit_l,test);
for (i=;i<len_r;i++)
{
if (bit_l[i]==''||bit_r[i]=='')
test[i]='';
else
test[i]='';
}
test[i]='\0';
LL res;
res=StrToNum(test);
if (res>Max) Max=res;
//printf("l : %s\n",bit_l);
//printf("r : %s\n",bit_r);
//printf("t : %s\n",test);
int k=;
while (bit_l[k]==bit_r[k]) k++;
k++;
for (i=k;i<len_r;i++)
{
res=StrToNum(test);
if (res>Max) Max=res;
if (bit_l[i]==''&&bit_r[i]=='')
{
test[i]='';
res=StrToNum(test);
if (res>Max)
Max=res;
}
}
printf("%I64d\n",Max);
}
return ;
}
hdu 5969 最大的位或的更多相关文章
- HDU 5969 最大的位或 (思维,贪心)
HDU 5969 最大的位或 题目大意 B君和G君聊天的时候想到了如下的问题. 给定自然数\(l\)和\(r\) ,选取\(2\)个整数\(x,y\)满足\(l <= x <= y < ...
- HDU 5969 最大的位或 —— 贪心 + 二进制的理解
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5969 最大的位或 Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))
最大的位或 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem De ...
- HDU - 5969 最大的位或 想法题
http://acm.hdu.edu.cn/showproblem.php?pid=5969 (合肥)区域赛签到题...orz 题意:给你l,r,求x|y的max,x,y满足l<=x<=y ...
- HDU 5969 最大的位或【贪心/按位或/思维】
链接 最大的位或 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...
- hdu 5969 最大的位或(贪心)
Problem Description B君和G君聊天的时候想到了如下的问题.给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大.其中|表示 ...
- HDU 5969 最大的位或【贪心】
题目 B君和G君聊天的时候想到了如下的问题. 给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大. 其中|表示按位或,即C. C++. Ja ...
- HDU 5969 最大的位或 题解
题目 B君和G君聊天的时候想到了如下的问题. 给定自然数l和r ,选取2个整数\(x,y\)满足\(l <= x <= y <= r\),使得\(x|y\)最大. 其中\(|\)表示 ...
- 【贪心算法】HDU 5969 最大的位或
题目内容 Vjudge链接 给出一个闭区间,找该区间内两个数,使这两个数的按位或最大. 输入格式 包含至多\(10001\)组测试数据. 第一行有一个正整数,表示数据的组数. 接下来每一行表示一组数据 ...
随机推荐
- 安装dcm4chee-arc-light-5.4.1-mysql步骤
一.进入网址: https://github.com/dcm4che/dcm4chee-arc-light/wiki/Installation 这个是GitHub上面给的步骤,可能会比较难理解,按照所 ...
- functor
I thought it would be easy and convenient to define a small functor and perform a customized sort on ...
- 【共享单车】—— React后台管理系统开发手记:Redux集成开发
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- 2017.4.12 开涛shiro教程-第十八章-并发登录人数控制
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十八章-并发登录人数控制 shiro中没有提 ...
- 最简单简洁高效的Json数据解析
一.无图无真相 二.主要代码 1.导入jar包 拷贝fastjson.jar包到projectlibs包下 2.封装工具类JsonUtil.java package com.example.parse ...
- 黑马程序猿——JAVA高新技术——反射
----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.对于反射的概念 对于JAVA反射机制是在执行状态中,对于随意一个类.都可以知道 ...
- python项目导出所需要的依赖库
使用pip freeze $ pip freeze > requirements.txt 这种方式是把整个环境中的包都列出来了,如果是虚拟环境可以使用. 通常情况下我们只需要导出当前项目的req ...
- Visual Studio 外请版本号管理插件 - AnkhSVN
Visual Studio 外请版本号管理插件 - AnkhSVN 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致 ...
- MYSQL总结之sql语句大全
一.基础1.说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...
- Kafka备忘
官网 http://kafka.apache.org/ 多生产者多消费者 多topic和多分区 多消费者组.每组中消息不能重复消费,组间不影响 启动 RunKafka(){ cd $kafka_hom ...