CodeForces 484A Bits

CodeForces 484A Bits

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

意甲冠军:

10000询价  每次查询输入L和R(10^18)  在区间的二进制输出指示1大多数数字  1个数同样输出最小的

思路:

YY一下  认为后几位全是1的时候能保证1的个数多  那么怎样构造出这个数字呢??

将L和R都变成二进制  从高位到低位  L和R同样的那几位一定是不变的  由于要保证构造出的数字在区间内  然后分两种情况

一是L和R一直同样  那就没什么好说的了  就是它了

二是发现了有一位不同  这时R的那个位一定是1  L的一定是0  那么仅仅要把R的那个1变成0  然后把后面的全部位都变成1就构造出了数字  这时一定1最多吗??  不一定  比方  R=101111 L=100000  构造出来是100111  这时要特判一下  假设把差异的那一位变回1是不是超过R  不超过的话  变回来更优

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
typedef long long LL;

int main() {
    int n;
    LL l, r, ans;
    scanf("%d", &n);
    while (n--) {
        cin >> l >> r;
        ans = 0;
        for (int i = 61; i >= 0; i--) {
            if ((r & (1LL << i)) && !(l & (1LL << i))) {
                ans |= (1LL << i);
                ans--;
                if (ans + (1LL << i) <= r)
                    ans += (1LL << i);
                break;
            } else {
                if (r & (1LL << i))
                    ans |= (1LL << i);
            }
        }
        cout << ans << endl;
    }
    return 0;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116921.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • managementobjectsearch_beanpropertyrowmapper

    managementobjectsearch_beanpropertyrowmapperclassWin32_Service:Win32_BaseService{ booleanAcceptPause; booleanAcceptStop; stringCaption; uint32CheckPoint; stringCreationClassName; stringDescription; booleanDesktopInteract; st

  • java引用变量存放在哪_java成员变量存储在哪个内存区域

    java引用变量存放在哪_java成员变量存储在哪个内存区域我们说常量,静态变量存放在方法区中,方法中的临时变量,存放到Java虚拟栈中。有人问,那全局变量*(对象)存放在哪里.其实全局变量就是参考文章中所说的class的字段,就是指全局变量,它是存放在方法区中的。e)方法区与堆一样,是被线程共享的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。在Class文件中除了类的字段、方法、接…

  • 万字深研:元宇宙应该是生产力工具,而不只是游戏娱乐「建议收藏」

    万字深研:元宇宙应该是生产力工具,而不只是游戏娱乐「建议收藏」元宇宙就是一个筐,大家什么东西都往里面装。出品|Odaily星球日报(ID:o-daily)我是Odaily星球日报的创始人Mandy,Odaily近期与36Kr联合出品…

  • 《老友记》典故集解 Season 1-10

    《老友记》典故集解 Season 1-10第一季第一集Mr.PotatoHead瑞秋和众人谈到了她逃婚的原因,她说这是因为她突然发现她的未婚夫巴里医生长得活像“薯头先生(Mr.PotatoHead)”,这是在美国家喻户晓的卡通人物。如果大家看过《玩具总动员(ToyStory)》,就会在里面发现他和他的夫人“薯头太太(Mrs.PotatoHead)”叽叽歪歪,经常批评这、批评那的形象。尽管“薯头先生”很…

  • mongodb 唯一索引 性能_什么是唯一索引

    mongodb 唯一索引 性能_什么是唯一索引MongoDB支持的索引种类很多,诸如单键索引,复合索引,多键索引,TTL索引,文本索引,空间地理索引等。同时索引的属性可以具有唯一性,即唯一索引。唯一索引用于确保索引字段不存储重复的值,即强制索引字段的唯一性。缺省情况下,MongoDB的_id字段在创建集合的时候会自动创建一个唯一索引。本文主要描述唯一索引的用法。

  • Hive简介

    Hive简介

    2021年11月27日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号