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

圣【牛客tracker 每日一题】

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

网页链接

牛客tracker

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

题目描述

给定n nn个数a i a_iai,求值:X O R i = 1 n O R j = 1 n ( a i XOR_{i=1}^nOR_{j=1}^n(a_iXORi=1nORj=1n(aiA N D ANDANDa j ) a_j)aj),其中符号X O R i = 1 n a i = ( a 1 XOR_{i=1}^na_i=(a_1XORi=1nai=(a1X O R XORXORa 2 ⋯ X O R a_2 ⋯ XORa2XORa n ) a_n)an),另外两个符号同理。

例如n = 2 n=2n=2时即计算:[ ( a 1 [(a_1[(a1A N D ANDANDa 1 ) a_1)a1)O R OROR( a 1 (a_1(a1A N D ANDANDa 2 ) ] a_2)]a2)]X O R XORXOR[ ( a 2 [(a_2[(a2A N D ANDANDa 1 ) a_1)a1)O R OROR( a 2 (a_2(a2A N D ANDANDa 2 ) ] a_2)]a2)]的值。

伪代码:init()读入,print()输出 T ←init()fork ←1..T n ←init()fori ←1..n a[i]init()ans ←0fori ←1..n tp ←0forj ←1..n tp ← tpor(a[i]anda[j])ans ← ansxortpprint(ans)C/C++语言版:for(k=1;k<=T;++k){n=init();for(i=1;i<=n;++i)a[i]=init();ans=0;for(i=1;i<=n;++i){tp=0;for(j=1;j<=n;++j)tp|=(a[i]&a[j]);ans^=tp;}}

输入描述:

全文第一行输入一个正整数T ( 1 ≤ T ≤ 1 0 5 ) T(1≤T≤10^5)T(1T105),表示数据组数。

对每组数据,第一行输入一个正整数n ( 1 ≤ n ≤ 1 0 5 , ∑ n ≤ 5 × 1 0 5 ) n(1≤n≤10^5,∑n≤5×10^5)n(1n105,n5×105)

第二行输入n nn个正整数,表示a i ( 1 ≤ a i ≤ 1 0 9 ) a_i(1≤a_i≤10^9)ai(1ai109)

输出描述:

对每组数据,输出一行一个整数表示答案。

示例1

输入:

1 2 1 1

输出:

0

解题思路

通过数学推导简化原表达式,发现对于每个i iiO R j = 1 n ( a i OR_{j=1}^n (a_iORj=1n(ai&a j ) a_j)aj)的结果等价于a i a_iai(因j = i j=ij=ia i a_iai&a i = a i a_i=a_iai=ai,其余a i a_iai&a j ≤ a i a_j≤a_iajai,或运算后结果仍为a i a_iai),因此原表达式X O R i = 1 n O R j = 1 n ( a i XOR_{i=1}^nOR_{j=1}^n(a_iXORi=1nORj=1n(aiA N D ANDANDa j ) a_j)aj)可简化为所有a i a_iai的异或和;基于此,解题时无需按原伪代码的O ( n 2 ) O(n²)O(n2)嵌套循环,直接对每组数据读取n nna i a_iai并计算其异或和即可;该方法将时间复杂度降至O ( n ) O(n)O(n),适配T TT1 e 5 1e51e5∑ n ≤ 5 e 5 ∑n≤5e5n5e5的输入规模,避免了冗余的嵌套运算,通过规律推导高效且精准地输出每组数据的答案。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=2e5+10;voidsolve(){ll n;cin>>n;ll x=0;for(ll i=1;i<=n;i++){ll y;cin>>y;x^=y;}cout<<x<<endl;}intmain(){ll t;cin>>t;while(t--)solve();return0;}
http://www.jsqmd.com/news/130929/

相关文章:

  • 工业控制中CCS安装的实战案例解析
  • Day35~初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料
  • MQ消息对账原理与运用实践
  • 家家有:以绿色积分+AI技术重塑数字商业新生态
  • 2025温州158GEO推广哪家好 - 栗子测评
  • Springboot家庭装修套餐消费管理c2emy(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 文档结构化系统通过OCR、NLP、知识图谱、多模态融合等技术的综合应用,彻底改变档案管理的本质
  • 【TextIn大模型加速器 + 火山引擎】通过COZE平台构建企业级数字投标专家Agent
  • 2025重金属水质监测设备厂家有哪些多方位对比解析 - 栗子测评
  • Linux系统编程——网络:从 OSI 到 UDP 通信实践
  • 屹晶微 EG2104D 600V耐压、宽压输入、带SD关断功能的高性价比半桥栅极驱动器技术解析
  • MyBatis 环境配置完整教程(从 0 到 1)
  • 2025聚氨酯地坪砂浆供应商:实力派聚氨酯地坪供应厂家清单 - 栗子测评
  • 【优化求解】基于matlab改进的粒子群算法IPSO确定对称级联多能级反相器的最佳切换角度【含Matlab源码 14762期】
  • windows11家庭版,解决找不到gpedit.msc文件的问题,打开组策略编辑器。 - 风潇潇兮-Missmen
  • IPC之消息队列(1)
  • PyTorch安装教程【笔记向,持续更新中】
  • 【轴承故障诊断】基于matlab带频率稀疏学习的轴承故障诊断【含Matlab源码 14763期】
  • 2025激光切割机哪家好?激光切割设备厂家推荐综合实力榜单 - 栗子测评
  • C++字符串用法总结
  • 解决Keil中FreeRtos的c++混编问题
  • 动漫之家系统设计与实现
  • 【优化求解】改进的粒子群算法IPSO确定对称级联多能级反相器的最佳切换角度【含Matlab源码 14762期】
  • C/C++机票管理系统[2025-12-23]
  • 深度揭秘.NET中Lambda表达式的编译机制:高效编程与性能优化
  • GitOps 详解与工具链全解析
  • 家家有成长课:突破打工思维,把握数字化浪潮下的绿色创收新机遇
  • 高显色指数的 LED 工矿灯怎么选?
  • 【网工技术实验】华为S5700交换机堆叠配置实验案例
  • 深度学习入门