码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 5969 最大的位或 (思维,贪心)

时间:2020-05-07 18:15:15      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:amp   lang   using   space   mes   聊天   def   自然数   type   

HDU 5969 最大的位或

题目大意

B君和G君聊天的时候想到了如下的问题。
给定自然数\(l\)\(r\) ,选取\(2\)个整数\(x,y\)满足\(l <= x <= y <= r\),使得\(x|y\)最大。
\(0 <= l <= r <= 10181018\)

solution

你看那数据范围,是不是像极了\(TLE\)
又是玄学贪心
异或最大,那么就尽可能让每一位上都是1,按照这个策略贪心即可,注意long long

#include<cstdio>
using namespace std;
typedef long long ll;
int main(){
    ll aa,bb,t;
    scanf("%lld",&t);
    while(t--){
        scanf("%lld%lld",&aa,&bb);
        ll now=0;
        while((aa|((long long)1<<now))<bb) aa|=((long long)1<<now),now++;
        printf("%lld\n",aa|bb);
    }
    return 0;
}

HDU 5969 最大的位或 (思维,贪心)

标签:amp   lang   using   space   mes   聊天   def   自然数   type   

原文地址:https://www.cnblogs.com/rui-4825/p/12844634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!