news 2026/5/9 7:44:27

圣【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
圣【牛客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;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 2:52:47

KeyShot许可证激活步骤及使用指南

一、KeyShot许可证激活步骤 获取许可证文件&#xff1a;从官方渠道或授权合作伙伴处获取KeyShot许可证文件。 打开KeyShot软件&#xff1a;启动软件后&#xff0c;您将看到许可证激活界面。 输入许可证信息&#xff1a;在界面中输入许可证文件的名称、许可证密钥等必要信息。 选…

作者头像 李华
网站建设 2026/5/3 4:14:39

网络编程基础:OSI 模型与 TCP/IP 协议栈详解

作为网络编程的入门核心&#xff0c;理解网络分层模型是掌握数据通信逻辑的关键。本文将拆解 OSI 七层模型的功能&#xff0c;并对比 TCP/IP 协议栈的简化设计&#xff0c;帮你快速建立网络通信的底层认知。一、OSI 七层模型&#xff1a;网络通信的 “标准框架”OSI&#xff08…

作者头像 李华
网站建设 2026/5/3 6:29:51

EagleTrader交易员采访|不遵守交易规则,真的是自由吗?

对很多交易员来说&#xff0c;真正的困难&#xff0c;从来不是行情本身。而是在一次次盈利与回撤之间&#xff0c;仍然愿意相信规则&#xff1b;是在没有掌声、没有监督的交易日里&#xff0c;持续做出那些“看起来不那么刺激”的选择。这类情况也往往只会被少数人长期坚持。朱…

作者头像 李华