当前位置: 首页 > news >正文

有趣的区间【牛客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;}
http://www.cnnetsun.cn/news/670213.html

相关文章:

  • 上海哪些海洋公园可以触摸海洋动物
  • 救命神器9个一键生成论文工具,自考学生轻松搞定毕业论文!
  • 提示工程架构师揭秘:Agent交互提示链设计的内幕
  • 交通仿真软件:VISSIM_(8).行人与自行车仿真
  • 交通仿真软件:VISSIM_(12).VISSIM与其他软件的接口与数据交换
  • 基于深度学习的手势识别检测系统(YOLOv8+YOLO数据集+UI界面+Python项目+模型)
  • 震惊!浙江这家AI科技头部公司光景泽创,究竟有何过人之处?
  • [C++][cmake]基于C++在windows上onnxruntime+opencv部署yolo26-pose的姿态估计关键点检测onnx模型
  • 学长亲荐2026TOP10AI论文平台:本科生毕业论文必备测评
  • 鸿蒙6访问内网域名异常排查
  • 双碳目标下的 “绿色算力”—— 云服务器如何实现节能与性能双赢​
  • 猫狗识别人工智能代码基于深度学习的猫狗识别系统完整源码+数据集+项目报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于逻辑回归模型的贷款违约预测(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 告别查重焦虑,重塑学术尊严
  • 一键生成专业文献综述
  • 百考通AI任务书功能:精准适配专业要求,智能生成规范、实用、个性化的毕业设计任务书
  • 基于 OpenAPI 规范生成亚马逊广告(Amazon Ads)Java SDK
  • 基于Vue的二手图书交易系统的设计与实现m7za7(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
  • 品牌出海哪一家好?解析Dynabridge品牌出海咨询的“实战派”打法
  • ssm432校园办公室报修管理系统
  • 数据结构:队列
  • 【Java毕设全套源码+文档】基于springboot的健康医疗体检管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 【Linux】Docker容器中快速部署VNC远程桌面环境
  • 完整的PID和LQR四旋翼无人机simulink,matlab仿真,两个slx文件一个m文件...
  • 大型源码C# MES WPF CS/BS两套 1, 整体程序由WPF(c#)开发; 2,各个文...
  • 全桥LLC开关电源,单片机TMS320F28034 硬件原理图,开环仿真模型,控制源代码
  • 2025年济南大学计算机考研复试机试真题(附 AC 代码 + 解题思路)
  • DeepSeek-V4即将发布,100条DeepSeek高级指令技巧,速速收藏
  • UDP高并发优化:监控RcvbufErrors
  • 河南与江苏仅“咫尺之隔”,却因安徽没接壤