CF876 F 思维 枚举

给你n个数,问有几个区间满足,区间内或操作大于区间内的任意数。

首先可以知道,两数或操作的结果必定不会小于两者间的最大值,也就是说对于一个区间中,不合法的状态只有两值或相等。那么我们可以考虑枚举每个数,向左向右找到第一个或不相等的,那么该数对所有不合法区间的贡献就能找到了,所以与其找合法的区间不如容斥找不合法的区间。

具体从左往右枚举每个数,同时记录该数某二进制位为0时,左侧数中该位出现1的离i的最近位置,得到左边界。右边界类似。

然后就是要注意重复的数,重复的数出现直接就使区间不合法,左右两侧收缩边界时只要有一侧考虑重复数即可。

 

/** @Date    : 2017-10-16 23:43:44* @FileName: F.cpp* @Platform: Windows* @Author  : Lweleth (SoungEarlf@gmail.com)* @Link    : https://github.com/* @Version : $Id$*/
#include <bits/stdc++.h>
#define LL long long
#define PII pair<int ,int>
#define MP(x, y) make_pair((x),(y))
#define fi first
#define se second
#define PB(x) push_back((x))
#define MMG(x) memset((x), -1,sizeof(x))
#define MMF(x) memset((x),0,sizeof(x))
#define MMI(x) memset((x), INF, sizeof(x))
using namespace std;const int INF = 0x3f3f3f3f;
const int N = 2e5+20;
const double eps = 1e-8;int a[N];
LL l[N];
LL r[N];
LL t[N];
map<int, int>q;
int main()
{LL n;cin >> n;for(int i = 1; i <= n; i++)scanf("%d", a + i);LL ans = 0;for(int i = 1; i <= n; i++){l[i] = q[a[i]];//标记重复数位置,重复数必定使区间不合法for(int j = 0; j < 31; j++){if((a[i] & (1LL << j)))t[j] = i;else l[i] = max(l[i], t[j]);}q[a[i]] = i;}for(int i = 0; i < 31; i++)t[i] = n + 1;for(int i = n; i >= 0; i--){r[i] = n + 1;for(int j = 0; j < 31; j++){if((a[i] & (1LL << j)))t[j] = i;else r[i] = min(r[i], t[j]);}}for(int i = 1; i <= n; i++){//cout << l[i] <<"~"<< i << "~"<< r[i] << endl;ans -= (i - l[i]) * (r[i] - i);}ans += n * (n + 1LL) / 2LL;printf("%lld\n", ans);return 0;
}

转载于:https://www.cnblogs.com/Yumesenya/p/7679685.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 设置头错误信息,错误:在node.js中发送标头后无法设置标头

我在node.js中写了这个简单的登录代码&#xff1a;var express require ("express");var badyparser require ("body-parser");var app express();app.use(express.static(__dirname "/static"));app.use(badyparser());var users {tom : &…

关注 | 5G 和 WiFi-6,谁是智能制造的主角?

来源&#xff1a;万物智能视界依据不同的情境和需求&#xff0c;结合不同技术的优点&#xff0c;让5G和WiFi-6在工业、物联网、自驾车等领域皆能蓬勃发展&#xff0c;协助产业更进一步朝向智慧化迈进。去年&#xff08;2019年&#xff09;12月&#xff0c;英国的航太设备&#…

[LeetCode] Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 二叉树的最小深度。 使用递归求解&#xff1a; 如果根节点为空&#xff0c;返回0。 如果左节点为空&…

java中table属性,Table边框使用方法及属性大全

一、表格的常用属性基本属性有&#xff1a;width(宽度)、height(高度)、border(边框值)、cellspacing(表格的内宽&#xff0c;即表格与tr之间的间隔)、 cellpadding(表格内元素的间隔&#xff0c;即tr与tr之间的间隔)、bordercolorlight(表格的亮边框颜色)、 bordercolordark(表…

吴恩达推荐笔记:22张图总结深度学习全部知识

来源&#xff5c;Sophia知乎&#xff0c;https://zhuanlan.zhihu.com/p/152362317本文仅用于学术分享&#xff0c;如有侵权&#xff0c;联系后台作删文处理编译&#xff1a;极市平台最近在做笔记查阅内容&#xff0c;觉得这个总结太美观了&#xff0c;真是棒&#xff01;吴恩达…

matlab编程实现二进制树搜索,数据结构: 二进制搜索树(用C语言实现)

有关二叉树的基本知识&#xff0c;请参阅我的博客之一: 二叉树的链式存储说明:二进制排序树是具有以下属性的空树或二进制树:1. 如果左子树不为空&#xff0c;则左子树上所有节点的值均小于其根节点的值;2. 如果右子树不为空&#xff0c;则右子树上所有节点的值都大于其根节点的…

植物的意识,是我们的错觉吗?

来源&#xff1a;原理说到生物&#xff0c;你脑海中第一反应会浮现出什么&#xff1f;大象、狮子、蚂蚁……很多时候&#xff0c;我们可能会不由自主地忽略另一群重要的“地球邻居”。虽然植物占地球生物量的80%以上&#xff0c;但长久以来&#xff0c;它们一直会被忽略和低估。…

php $handle,laravel $kernel-handle 报错的解决办法_PHP开发框架教程

yii和zend框架的区别是什么&#xff1f;_PHP开发框架教程Yii框架和zend框架的区别&#xff1a;zend的功能强大&#xff0c;但基本百分之八十的功能你用不到&#xff1b;学习速度功能&#xff0c;效率方面&#xff0c;YII会略胜。Q&#xff1a;我的项目启动时报错laravel $kerne…

CodeForces 869E The Untended Antiquity 二维树状数组,随机hash

CodeForces 869E 题意&#xff1a; n*m 的格子&#xff0c;有三种操作&#xff0c; 1、在一个矩形周围加一层障碍。2、把一个矩形周围的障碍去掉。 3、询问两个格子是否可达。 题目保证不会有矩形障碍交叉&#xff0c;且去掉的矩形一定是在前面已给出的。 tags&#xff1a…

纪念机器翻译概念的诞生:重新认识瓦伦·韦弗先生

来源&#xff1a;AI科技评论作者&#xff1a;张家俊编辑&#xff1a;丛 末机器翻译旨在利用计算机实现自然语言之间的自动翻译&#xff0c;一直是自然语言处理与人工智能领域的重要研究方向&#xff0c;近年来更是取得了突破性进展&#xff0c;已成为大众较为熟知和常用的技术…

php 怎样清除浏览器痕迹,如何清除电脑使用痕迹?上网痕迹清理的方法介绍

当我们上网的时候&#xff0c;会使用电子信箱&#xff0c;会登录很多论坛类网站&#xff0c;这样就会留下账号&#xff1b;可能会访问一些网站&#xff0c;这样会留下上网信息&#xff1b;可能会登录一些电子商务网站&#xff0c;那账号和密码则会默认保存在系统之中&#xff0…

兰德报告《现代战争中的全域联合指挥控制--一种确定和开发人工智能应用的分析框架》...

本文来源&#xff1a;兵推天下本报告作者研究了美国空军应用人工智能&#xff08;或更广泛的自动化系统&#xff09;进行有计划全域联合指挥控制规划的机会并给出了相关建议。作者发现&#xff0c;要为未来多域战提供支持&#xff0c;必须协调以下三个范畴的内容:1&#xff09;…

实现内、外网同时访问

不少公司的网管试图解决双网卡问题&#xff0c;下面我就给大家详细的讲解一下双网卡同时使用的方法&#xff0c;这样即可保障内网的安全&#xff0c;又能解决电脑访问外网的问题&#xff0c;一举两得。希望大家喜欢。 首先你的机器需要有两块网卡&#xff0c;分别接到两台交换机…

java swing 多个线程,Swing与多线程

1)如果要在图形界面上显示经过数据查询或经过其他方式得来的数据&#xff0c;一般将这个过程放在一个线程中&#xff0c;由该线程进行单独运算&#xff0c;并随时更新图形界面。(2)Swing线程发生死锁的时候&#xff0c;如果是使用命令行的方式运行的该程序&#xff0c;可以使用…

日本面向未来的特定科技领域技术预见分析

作者&#xff1a;王达&#xff0c;中国科协创新战略研究院本文转载自微信公众号科学家&#xff0c;原载于《今日科苑》2020年第5期目前&#xff0c;全球面临的环境、人口变化、资源、粮食和能源安全等问题亟待解决&#xff0c;先进的测量技术与信息处理技术的深度融合可以刺激更…

Prototype模式

原型模式创建对象不调用原对象的构造函数&#xff0c;是直接copy原对象的浅克隆&#xff1a;对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象.深克隆&#xff1a;对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制. …

oauth2.0 php简化模式,OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)

授权方式2-简化模式(implicit grant type)简化模式(implicit grant type)不通过第三方应用程序的服务器&#xff0c;直接在浏览器中向认证服务器申请令牌&#xff0c;跳过了"授权码"这个步骤&#xff0c;因此得名。所有步骤在浏览器中完成&#xff0c;令牌对访问者是…

人与人工的智能区别

来源&#xff1a;人机与认知实验室是非之心&#xff0c;智也! 为什么说这不仅仅是指伦理道德&#xff0c;其实&#xff0c;这涉及到人之智能、智慧的根本&#xff1a;非逻辑推理性的判断! 机器的判断是逻辑推理性的&#xff0c;对环境的适应性自然就弱了一些。作家菲茨杰拉德的…

Swift UISearchController

1.遵守协议 UISearchController 2.变量声明 var sc :UISearchController! 3.viewDidLoad中实现 sc UISearchController(searchResultsController: nil) sc.searchResultsUpdater self sc.dimsBackgroundDuringPresentation false//是否添加半透明覆盖层 self.tableView.tab…

matlab的三维伪彩图,matlab画等高线伪彩图

exp(-x.*x-y.*y); con tour3(z,20); title(三维等值线图); xlabel( X ),ylabel( Y ),zlabel( Z); grid; 4) 打印函数的伪彩色图......MATLAB总结 - 三维图形、等高线_数学_自然科学_专业资料。个人总结的一些...(系) 物电学院 专业班级 电子信息科学与技术 1103 指导教师 蒋媛 …