news 2026/4/3 6:28:42

有趣的区间【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有趣的区间【牛客tracker 每日一题】

有趣的区间

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

给出一个长度为n nn的数组A AA,下标从1 11开始,A 1 , A 2 , . . . , A n A_1,A_2,...,A_nA1,A2,...,An。定义一个区间[ l , r ] [l,r][l,r]是“有趣的区间”,当且仅当A l ∣ A l + 1 ∣ A l + 2 ∣ . . . ∣ A r − 1 ∣ A r A_l∣A_{l+1}∣A_{l+2}∣...∣A_{r−1}∣A_rAlAl+1Al+2...Ar1Ar结果为奇数。

a ∣ b a∣bab表示a aa按位或b bb(按位或运算符“∣∣”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的两个二进位有一个为1 11时,结果位就为1 11)。

求“有趣的区间”的个数,两个区间[ L 1 , R 1 ] , [ L 2 , R 2 ] [L1,R1],[L2,R2][L1,R1],[L2,R2]相同,当且仅当L 1 = L 2 L1=L2L1=L2R 1 = R 2 R1=R2R1=R2

输入描述:

第一行包含一个整数n ( 1 ≤ n ≤ 5 e 5 ) n (1≤n≤5e5)n(1n5e5),表示数组A AA的长度。

第二行包含n nn个整数,分别表示数组A AAn nn个元素,其中0 ≤ A i ≤ 1 e 9 0≤A_i≤1e90Ai1e9

输出描述:

一行包含一个整数,表示 ”有趣的区间“ 的个数。

示例1

输入:

2 2 1

输出:

2

说明:

”有趣的区间“ 有[ 1 , 2 ] ( ( 2 ∣ 1 = 3 [1,2] (( 2∣1=3[1,2]((21=3是奇数))[ 2 , 2 ] ( ( 1 [2,2] ((1[2,2]((1是奇数))共2 22个。

解题思路

首先推导核心规律,按位或运算结果为奇数的充要条件是二进制最低位为1,而按位或的特性为:区间内只要有一个数是奇数(最低位1 11),整个区间的按位或结果必为奇数,只有区间内所有数都是偶数时,按位或结果才是偶数。因此采用反向求解策略,先计算数组的总区间数n ∗ ( n + 1 ) / 2 n*(n+1)/2n(n+1)/2,再减去所有全偶数子区间的数量,得到有趣区间的个数;遍历数组统计连续偶数的长度c cc,遇奇数则计算该段全偶子区间数c ∗ ( c + 1 ) / 2 c*(c+1)/2c(c+1)/2并从总数扣除,重置c cc,遍历结束后扣除最后一段全偶区间数;该方法时间复杂度O ( n ) O(n)O(n),无冗余计算,完美适配n ≤ 5 × 10 5 n≤5×10^5n5×105的规模,高效精准统计出符合要求的区间总数。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=5e5+10;ll a[N];intmain(){ll n;cin>>n;for(ll i=0;i<n;i++)cin>>a[i];ll ans=n*(n+1)/2;ll c=0;for(ll i=0;i<n;i++){if(a[i]&1){ans-=c*(c+1)/2;c=0;}elsec++;}ans-=c*(c+1)/2;cout<<ans<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 11:21:38

ssm473的阳光养老院管理系统

目录阳光养老院管理系统摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;阳光养老院管理系统摘要 阳光养老院管理系统基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架开发&#xff0c;旨在为养老机构提供高效、…

作者头像 李华
网站建设 2026/3/19 22:49:05

uv 与 pip:Python 包与依赖管理工具对比

当谈到 Python 的包管理工具时&#xff0c;开发者常常要在 uv 和 pip 之间做出选择。 如果你看重开箱即用、广泛的兼容性和成熟的生态系统&#xff0c;pip 依然是稳妥之选&#xff1b;而如果你更关注安装速度、环境可复现性、干净的卸载行为&#xff0c;或者希望为新项目建立高…

作者头像 李华
网站建设 2026/3/27 17:56:03

如何选择适合跨境电商的全球代理IP?

在跨境电商运营中&#xff0c;代理IP已经成为保障业务顺利运行的重要工具。无论是进行多账号管理、广告投放&#xff0c;还是接触地区限制&#xff0c;都离不开代理IP的帮助。然而&#xff0c;面对市场上种类繁多的代理IP&#xff0c;如何挑选最合适自己的产品呢&#xff1f;下…

作者头像 李华
网站建设 2026/3/23 5:09:19

MongoDB Schema验证:灵活的数据结构控制方法

MongoDB Schema验证&#xff1a;灵活与约束的动态平衡技术解析 关键词 MongoDB Schema验证、JSON Schema、数据完整性、NoSQL约束、动态数据模型、验证规则优化、跨版本兼容 摘要 MongoDB作为典型的文档型NoSQL数据库&#xff0c;其“无Schema”特性&#xff08;更准确的表述是…

作者头像 李华
网站建设 2026/4/1 10:56:14

基于Springboot+Vue的爱琴海购物公园网上商城系统(源码+lw+部署文档+讲解等)

课题介绍本课题旨在设计并实现一套基于SpringBootVue的爱琴海购物公园网上商城系统&#xff0c;以解决传统商场线上线下割裂、品牌商户营销渠道单一、用户购物体验不连贯、运营数据碎片化等痛点&#xff0c;搭建集商品销售、品牌运营、O2O服务、数据管控于一体的新零售服务平台…

作者头像 李华
网站建设 2026/4/1 8:03:29

ssm681网络教学系统vue

目录SSM681网络教学系统Vue摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;SSM681网络教学系统Vue摘要 SSM681网络教学系统是基于Spring、SpringMVC、MyBatis&#xff08;SSM&#xff09;框架与Vue.js前端技术构建的现代化…

作者头像 李华