求区间中1的个数最多的数 若有多个输出最小的
来源:互联网 发布:淘宝欧舒丹是正品吗 编辑:程序博客网 时间:2024/06/07 20:20
原题链接:
http://acm.ecnu.edu.cn/problem/3303/
分析:
数据量大考虑按位处理
每次把 L 中的二进制其中一个0变成1,直到比R大
有多个优先输出小的,也就是二进制中0在高位的,也就是优先将低位0变1 使用ans|=ans+1;将最低位0变1
代码:
#include<bits/stdc++.h>using namespace std;#define ll unsigned long longll l,r,ans;int n;void show(){ char s[66]; itoa(ans,s,2);//将ans转换成二进制保存在s中 printf("%s\n",s);}int main(){ scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%llu%llu",&l,&r); ans=l; while((ans|(ans+1))<=r){ ans|=ans+1; //show(); } printf("Case %d: %llu\n",i,ans); } return 0;}
阅读全文
1 0
- 求区间中1的个数最多的数 若有多个输出最小的
- Binary system(求区间内二进制中1的个数最多的数)
- 求不相交区间的最多个数
- 求最多不相交区间的个数
- 求数组中区间中最小数*区间所有数和的最大值
- 求数组中区间中最小数*区间所有数和的最大值
- 1000个数分别在区间[1,1001]中,求缺失的那个数
- 【Codeforces Round 276 (Div 2)C】【讨论】Bits [l,r]范围内第1个数最多数中最小的那个
- POJ 3252- Round Numbers(求区间中二进制数中0个数大于1的数的总数)
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中 1 的个数
- git命令
- 2017.8.4暑假集训第五天
- 线段树练习2
- 腾讯秋招上机题目游戏任务标记C++实现
- 8月4日总结
- 求区间中1的个数最多的数 若有多个输出最小的
- 临界判断&来回不间断切换效果的小算法
- Vue不同场景下组件间的数据交流
- 数据结构小结——顺序表(指针版)
- 线段树区间修改+区间查询
- java日期,时间比较
- 数据交换
- SPOJ VLATTICE
- gcc 和 nasm的区别