首页 > 其他分享 >E - Xor Sigma Problem

E - Xor Sigma Problem

时间:2024-08-07 18:39:26浏览次数:12  
标签:Xor int ll zero cnt1 cnt0 Problem Sigma sum

原题链接

题解

首先,位运算很容易想到按位枚举。而这道题的关键是如何快速求区间异或和。

对此,我们构建一个后缀异或数组即可,甚至这个数组可以进一步优化为 cnt1和cnt0 两个变量。(具体实现看code理解)

code

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5;
ll a[N];
int main(){
    int n;
    cin>>n;
    ll ans=0ll;
    for (int i=1;i<=n;i++) cin>>a[i];
    for (int p=30;p>=0;p--){
        ll cnt0=0,cnt1=0,zero=0,one=0;
        ll sum=0,x=1<<p;
        for (int i=n;i>=1;i--){
            if (a[i]&x){
                sum+=cnt0;
                zero=cnt1;
                one=cnt0+1;
            }
            else{
                sum+=cnt1;
                zero=cnt0+1;
                one=cnt1;
            }
            cnt1=one;
            cnt0=zero;
        }
        
        ans+=sum*x;
    }
    cout<<ans<<endl;
    return 0;
}

 

标签:Xor,int,ll,zero,cnt1,cnt0,Problem,Sigma,sum
From: https://www.cnblogs.com/purple123/p/18347633

相关文章

  • 洛谷P1480 A/B Problem
    4.高精度除以低精度题目叙述:A/BProblem题目描述输入两个整数\(a,b\),输出它们的商。输入格式两行,第一行是被除数,第二行是除数。输出格式一行,商的整数部分。样例#1样例输入#1102样例输出#15提示\(0\lea\le10^{5000}\),\(1\leb\le10^9\)。代码本题为高精......
  • leetcode 1486. 数组异或操作 https://leetcode.cn/problems/xor-operation-in-an-arr
    1486.数组异或操作题目描述给你两个整数,n和start。数组nums定义为:nums[i]=start+2*i(下标从0开始)且n==nums.length。请返回nums中所有元素按位异或(XOR)后得到的结果。示例示例1:输入:n=5,start=0输出:8解释:数组nums为[0,2,4,6,8],其中(0^......
  • Monty Hall problem
    Theproblemcanbeformulatedasfollows.Asaparticipantofagame show,youhavetochooseoneofthreedoors.Behindoneofthedoorsisa prize,behindtwootherdoorsisnothing.Afteryoupickadoor,thegame host,whoknowswheretheprizeis,se......
  • ARC181 - B - Annoying String Problem
    B-令人讨厌的字符串问题编辑:evima在大多数情况下,\(f(S,T,X)\)和\(f(S,T,Y)\)的长度相等,这揭示了\(T\)的长度。让我们来看看当已知\(S\)和\(T\)的长度时,在什么条件下\(S\)和\(T\)满足\(f(S,T,X)=f(S,T,Y)\)。例题例如,当\(|S|=6\)和\(|T|=4\)时,让我们考虑当\(S+......
  • 洛谷P1001 A+B Problem的一些歪解(淼作)
    一、LCT#include<iostream>#include<cstring>#include<cstdio>#include<cstring>usingnamespacestd;structnode{intdata,rev,sum;node*son[2],*pre;booljudge();boolisroot();voidpushdown();voidupda......
  • 【简单菊花图】Codeforce 1583Problem - B.md
    1583Problem-B-Codeforces题目大意:n个点的无根树给出m个限制条件(a,c,b)在a到b路径上不能存在c点,求任意一种可能的树的所有边注意数据范围:1<m<n<1e5这说明了最多有n-1个限制条件这说明至少有一个点不存在限制条件即这个点可以作为根节点root连接其他所有点形成边......
  • CodeForces 1619D New Year's Problem
    题目链接:CodeForces1619D【NewYear'sProblem】思路    可以因为最多只能逛n-1个商店,当n-1大于等于m的时候,所有朋友都能取最大值,否则至少有两个人要选择相同的商店,所以依次枚举两个人选择同一个商店,其他人选择喜悦值最大的商店。代码#include<cstddef>#incl......
  • Solution - Atcoder AGC052B Tree Edges XOR
    令\(w_{(u,v)}\)为边\((u,v)\)的边权。考虑到对于一条边进行操作影响的是有公共点的边,于是一个想法是把边权转到点权,用点权来表示边权。于是考虑对于每个点构造\(w_u\)使得\(w_{(u,v)}=w_u\oplusw_v\)。因为这是一颗树,所以一定存在合法的构造。其实到了这里,这种......
  • 支持4K高分辨率,PixArt-Sigma最新文生图落地经验
    PixArt-Sigma是由华为诺亚方舟实验室、大连理工大学和香港大学的研究人员共同开发的一个先进的文本到图像(Text-to-Image,T2I)生成模型。PixArt-Sigma是在PixArt-alpha的基础上进一步改进的模型,旨在生成高质量的4K分辨率图像。PixArt-Sigma通过整合高级元素和采用由弱到强式训练......
  • 异或运算(XOR)的可交换性证明
    异或运算(XOR)的可交换性是指:若\(a\oplusb=c\),那么有\(a\oplusc=b\)且\(b\oplusc=a\)证明:不失一般性,我们只需证明第一个等式\(a\oplusc=b\)。首先:按位异或运算有以下几个重要性质:交换律:\(a\oplusb=b\oplusa\)结合律:\(a\oplus(b\oplusc)......