Description

小C有n个区间,其中第i个区间为[li,ri],小C想从每个区间中各选出一个整数,使得所有选出的数and起来得到的结果最大,请你求出这个值。

Input Format

第一行一个正整数n,表示区间个数。接下来n行,每行两个非负整数li,ri。

\(n \leq 10^5, li \leq ri \leq 10^{18}\)

Output Format

输出一个整数,表示答案。

Solution

跟二进制有关,那么一般都要转化成二进制下操作,

我们发现,最后的答案其实是可以看成\(2^{k_1}+2^{k_2}+...2^{k_n}\),

那么其实就是选出来的数列化成二进制后第\(k_1,k_2...k_n\)位都为1,

而\(k_i\)越大就越优,那么就有了思路,按二进制为从高到低验证,

如果第\(i\) 位符合条件,那么\(Ans+=2^i\) ,答案就算出来了,

当符合条件的时候,需要特殊处理否则会影响到后面的判断,

只要把所有区间都往左移动\(2^i\)即可,即减去\(2^i\),

Code

#include <cstdio>
#include <algorithm>
#define LL long long
#define N 100010
using namespace std; int n;
LL Ans, l[N], r[N]; inline LL read() {
LL x = 0, r = 1; char ch = getchar();
while (ch < '0' || ch > '9') {if (ch == '-')r = -1; ch = getchar();}
while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();}
return x * r;
} int main() {
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
l[i] = read(), r[i] = read();
for (int k = 62; k >= 0; k--) {
LL pk = 1ll * 1 << k;
bool flag = 1;
for (int i = 1; i <= n; ++i)
if (r[i] < pk) flag = 0;
if (flag) Ans += pk;
for (int i = 1; i <= n; ++i) {
if (flag || l[i] >= pk) l[i] -= pk, r[i] -= pk;
}
}
printf("%lld\n", Ans);
return 0;
}

MAX(数论)的更多相关文章

  1. (第五场)G max 【数论】

    题目链接:https://www.nowcoder.com/acm/contest/143/G 题目描述 Give two positive integer c, n. You need to fin ...

  2. HDU 2710 Max Factor(数论,素数筛法)

    #include<iostream> #include<stdio.h> #include<string.h> #include<cmath> usin ...

  3. hdu5072 Coprime (2014鞍山区域赛C题)(数论)

    http://acm.hdu.edu.cn/showproblem.php?pid=5072 题意:给出N个数,求有多少个三元组,满足三个数全部两两互质或全部两两不互质. 题解: http://dty ...

  4. 【56测试】【字符串】【dp】【记忆化搜索】【数论】

    第一题:神秘大门 大意: 两个字符串A,B,按字典序最大的顺序输出B 的每个字符在A 中的位置,如果B不全在A中,输出No,否则Yes. 解: 这道题就是一遍的扫描,因为要按字典序最大的输出,所以从后 ...

  5. 数论 : 模运算法则(poj 1152)

    题目:An Easy Problem! 题意:求给出数的最小进制. 思路:暴力WA: discuss中的idea: 给出数ABCD,若存在n 满足 (A* n^3 +B*n^2+C*n^1+D*n^0 ...

  6. 数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0

     题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php Mean: 略. analyse: 刚开始想了半天都没想出来,数据这么大,难道是有什么 ...

  7. hiho一下 第九十七周 数论六·模线性方程组

    题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军 ...

  8. hiho一下 第九十六周 数论五·欧拉函数

    题目1 : 数论五·欧拉函数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥.小Hi和小Ho约定 ...

  9. HDU 4497 GCD and LCM (数论)

    题意:三个数x, y, z. 给出最大公倍数g和最小公约数l.求满足条件的x,y,z有多少组. 题解:设n=g/l n=p1^n1*p2^n2...pn^nk (分解质因数 那么x = p1^x1 * ...

随机推荐

  1. Visual Studio中的引用项目和直接引用DLL文件

    在VS中引用类库时有多种方法,其中用的最多的就是在引用时选择项目选项卡引用本解决方案下的类库项目和选择浏览选项卡直接引用类库DLL文件,实际上这两种引用方式略有不同,今天就为大家总结下. C#本地项目 ...

  2. 《大话设计模式》num01---简单工厂模式

    2017年12月10日 20:13:57 独行侠的守望 阅读数:128更多个人分类: 设计模式编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blog.csdn.net/xia ...

  3. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十天(非原创)

    文章大纲 一.课程介绍二.单点登录系统分析三.单点登录系统代码实战四.项目源码与资料下载五.参考文章   一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn ...

  4. Intellij IDEA 最头大的问题,如何自定义注释模板?

    想栈长我当初从 Eclipse 转用 IDEA 真是纠结,放弃然后尝试了N次,不过现在已经算是转型成功了,可以完全脱离 Eclipse 撸码了,虽然说我现在真的撸得非常少了.. 说到 IDEA 的痛点 ...

  5. html5的使用

    <!DOCTYPE html><html lang="en"><head> <meta charest="UTF-8" ...

  6. 飞塔Web应用防火墙-FortiWeb

    飞塔Web应用防火墙-FortiWeb 平台: fortiweb 类型: 虚拟机镜像 软件包: linux basic software Fortinet security SSL offloadin ...

  7. Using an Image for the Layer’s Content

    Using an Image for the Layer’s Content Because a layer is just a container for managing a bitmap ima ...

  8. 【转】chrome浏览器的跨域设置——包括版本49前后两种设置

    做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提 ...

  9. 【转】转自微信公众号 JavaScript 复杂判断的更优雅写法

    与微信公众号看到一篇js复杂判断的文章,对我启发很大,故转到博客园以供后期不断学习并应用于项目.原文地址:https://mp.weixin.qq.com/s/ClFDRj4MnAxv1dJ5VWKS ...

  10. java基础编程——链表反转

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.   题目代码 /** * @program: JavaCode * @description:输入一个链表,按链表值从尾到头 ...