首页 > 其他分享 >ARC127D Sum of Min of Xor

ARC127D Sum of Min of Xor

时间:2024-01-26 09:46:22浏览次数:28  
标签:Xor Min int Sum 贡献 oplus c1

ARC127D Sum of Min of Xor

性质分析加通用套路。

思路

首先我们把这题的 \(\min\) 给去掉,那么我们按位算贡献,可以求出和。这是这种式子的通用套路。

考虑加上 \(\min\),那么我们先按照 \((a_i,b_i)\) 的最高位分为:\((1,0)\),\((0,1)\),\((1,1)\),\((0,0)\) 四种情况。

可以发现用贡献的组如下:

  • \((0,0)\),\((0,1)\) 贡献为 \(a_i\oplus a_j\)。
  • \((0,0)\),\((1,0)\) 贡献为 \(b_i\oplus b_j\)。​
  • \((1,1)\),\((1,0)\) 贡献为 \(a_i\oplus a_j\)。
  • \((1,1)\),\((0,1)\) 贡献为 \(b_i\oplus b_j\)。​
  • \((1,1)\),\((1,1)\)​ 贡献需要向下枚举一位计算。
  • \((0,0)\),\((0,0)\) 贡献需要向下枚举一位计算。

那么已知贡献的我们可以用通用套路算,不知道的向下枚举即可。

CODE

#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define K 18

const int maxn=3e5+5;

int n;
int a[maxn],b[maxn];

ll ans;

vector<int>sd;

void C(vector<int> &d1,vector<int> &d2,bool w)
{
    for(int i=0;i<K;i++)
    {
        int c1,c2;
        c1=c2=0;
        for(int j:d1) c1+=(w?b[j]:a[j])>>i&1;
        for(int j:d2) c2+=(w?b[j]:a[j])>>i&1;
        ans+=(1ll*c1*(d2.size()-c2)+1ll*c2*(d1.size()-c1))<<i;
    }
}
void S(int p,vector<int> &d)
{
    if(d.empty()) return ;
    if(p==-1)
    {
        for(int i=0;i<K;i++)
        {
            int c1=0;
            for(int j:d)
                c1+=a[j]>>i&1;
            ans+=1ll*c1*(d.size()-c1)<<i;
        }
        return ;
    }
    vector<int> l[2][2];
    for(int i:d) l[a[i]>>p&1][b[i]>>p&1].push_back(i);
    C(l[0][0],l[0][1],0);
    C(l[0][0],l[1][0],1);
    C(l[1][1],l[0][1],1);
    C(l[1][1],l[1][0],0);
    for(int i:l[0][0]) l[1][1].push_back(i);
    for(int i:l[0][1]) l[1][0].push_back(i);
    S(p-1,l[1][1]),S(p-1,l[1][0]);
}

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]),sd.push_back(i);
    for(int i=1;i<=n;i++) scanf("%d",&b[i]);
    S(K-1,sd);
    printf("%lld",ans);
}

标签:Xor,Min,int,Sum,贡献,oplus,c1
From: https://www.cnblogs.com/binbinbjl/p/17988643

相关文章

  • Programming Abstractions in C阅读笔记:p254-p257
    《ProgrammingAbstractionsinC》学习第70天,p254-p257总结,总计4页。一、技术总结1.minimaxstrategy(极小化极大算法)p255,Thisidea--findingthepositionthatleavesyouropponentwiththeworstpossiblebestmove--iscalledtheminimaxstrategybecausethegoa......
  • djangoadmin如何实现用户注册或新增后自动分配到某个组
    默认后台设置多个组,当后台新增或通过前台注册新用户后,自动分配到普通用户组以获取对应的权限,方便管理。大概意思就是这样:要实现在DjangoAdmin开发中,将新增用户或新注册的用户自动分配到某个组中,可以使用信号(signal)来完成。在对应的app下新建一个文件如signal.py:fromdjango......
  • CF1920B Summation Game
    题目传送门codeforces洛谷题面AliceandBobareplayingagame.Theyhaveanarray$a_1,a_2,\ldots,a_n$.Thegameconsistsoftwosteps:First,Alicewillremoveatmost\(k\)elementsfromthearray.Second,Bobwillmultiplyatmost\(x\)elementsoft......
  • [LeetCode] 2859. Sum of Values at Indices With K Set Bits
    Youaregivena0-indexedintegerarraynumsandanintegerk.Returnanintegerthatdenotesthesumofelementsinnumswhosecorrespondingindiceshaveexactlyksetbitsintheirbinaryrepresentation.Thesetbitsinanintegerarethe1'sprese......
  • Pure Admin 学习笔记(一)
    介绍vue-pure-admin(opensnewwindow)是一款开源免费且开箱即用的中后台管理系统模版。使用纯ESM、Vue3、Element-Plus、Vite、TypeScript、Pinia、TailwindCSS等主流技术栈开发在线预览PureAdmin完整版PureAdmin精简版文档地址PureAdmin保姆级文档快速上手开发环境......
  • F. Sum of Progression
    原题链接题解关键要素:两次后缀和预处理\(d<\sqrt{n}\)的情况,当\(d\)大于\(\sqrt{n}\)时,直接暴力,总时间复杂度为\(O(n\sqrt{n})\)代码比讲述要清晰,请直接看代码code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lla[100005]={0};llsufs1[100335][......
  • miniweb开源的迷你HTTP服务器端软件
    前言全局说明MiniWeb是一个用C语言写成的HTTP服务器端软件,具有资源占用少、响应快速、跨平台(POSIX、*nux、Windows)等优点,支持常用的GET、POST算法及音/视频流媒体应用,可用来构建WEBSITE站点或VOD服务器等。MiniWeb是一个针对嵌入式应用而开发的微型WebServer,它占用资源少,工......
  • 软件技巧-MAC通过快捷键打开Terminal
    背景  MAC系统经常要在Finder某一个位置打开终端(Terminal),现有操作方式为:选中目录,点击鼠标右键,选择打开终端。操作比较多,且如果目标是一个文件,必须到文件的上级目录才能打开终端。目标  选中目录/文件时,通过快捷键直接在当前目录位置打开终端。方案一:通过Shortcuts实现......
  • Spark Streaming程序优雅关闭
    流式任务需要7*24小时执行,但是有时涉及到升级代码需要主动停止程序,但是分布式程序,没办法做到一个个进程去杀死,所有配置优雅的关闭就显得至关重要了。使用外部文件系统来控制内部程序关闭。其实就是单独起一个线程专门去专门查找程序是否停止的标志importjava.net.URIimport......
  • k8s系列-minikube操作应用之安装篇
    Minikube是一个轻量级的Kubernetes集群,专为本地开发和测试环境设计。Minikube由Kubernetes社区维护,支持macOS、Linux和Windows等多种操作系统平台。它使用Kubernetes的官方稳定版本,并提供了大部分功能,包括容器编排管理、负载均衡、Ingress以及权限控制等高级特性。......