尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

硝基甲苯之魇

硝基甲苯之魇
📅 发布时间:2026/6/18 20:57:36

题目链接:https://ac.nowcoder.com/acm/contest/95323/K

题意:

给定一个长度为n的数组,求所有[l,r]区间xor等于区间gcd的个数(l<r)

思路:

不妨固定左端点l,a[l]=x,发现右端点在扩增的时候,区间gcd最多变化logx次,因此可以二分出区间gcd的变化点p

同时用ST表求出区间[p1,p2]gcd大小,设为g,那么区间pre[r] xor pre[l-1] = g => pre[r]= g xor pre[l-1]

(其中r属于[p1,p2]且r不能为l),通过map套vector上二分能求出这段区间中pre[r]的数的个数

int Log[maxn];
void init(){Log[1]=0;for(int i=2;i<=2e5;i++){Log[i] =Log[i/2]+1;}
}void solve(){int n;cin>>n;vector<int>a(n+1);rep(i,1,n)cin>>a[i];vector<vector<int>>f(n+1,vector<int>(27));rep(i,1,n)f[i][0]=a[i];rep(j,1,26){for(int i=1;i+(1ll<<j)-1<=n;i++){f[i][j]=__gcd(f[i][j-1],f[i+(1ll<<j-1)][j-1]);}}auto query =[&](int l,int r)->int{int k=Log[r-l+1];return __gcd(f[l][k],f[r-(1ll<<k)+1][k]);};vector<int>pre(n+1);rep(i,1,n){pre[i]=(pre[i-1]^a[i]);}map<int,vector<int>>cnt;rep(i,1,n)cnt[pre[i]].pb(i);int ans=0;auto cal=[&](int x,int lt,int rt)->int{auto itl=lower_bound(cnt[x].begin(),cnt[x].end(),lt);int left=0;if(itl==cnt[x].end())return 0;else left=lower_bound(cnt[x].begin(),cnt[x].end(),lt)-cnt[x].begin();auto itr=upper_bound(cnt[x].begin(),cnt[x].end(),rt);if(itr==cnt[x].end()){int m=cnt[x].size();return (m-left);}else{int right=upper_bound(cnt[x].begin(),cnt[x].end(),rt)-cnt[x].begin();return (right-left);}};for(int l=1;l<=n;l++){int L=l,R=n;int u=a[l];while(L<=n){int tmp=L;int ed=-1;while(L<=R){int mid = L+R>>1;if(query(l,mid)==u){L=mid+1;ed=mid;}else R=mid-1;}if(ed==-1)break;int x= (pre[l-1]^u);ans += cal(x,max(l+1,tmp),ed);if(ed+1>n)break;u=query(l,ed+1);L=ed+1;R=n;}}cout<<ans<<endl;
}

相关新闻

  • 关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚~
  • day13-Trae之一键换脸APP开发03
  • 摩尔投票法

最新新闻

  • DeepSeek-V4定价真相:显存、框架与提示词如何决定真实成本
  • C语言数学函数库工程实践:从ceil到expm1的精度与性能优化
  • PlantAssistant-管道IDF文件
  • 5分钟解锁B站经典界面:Bilibili-Old项目全面解析
  • 【GEO知识】做好开头即答案!
  • 无锡买猫买狗去哪看?梦宠山庄实地体验分享 - 园友3800037

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号