首页 > 其他分享 >[ARC127D] Sum of Min of Xor 题解

[ARC127D] Sum of Min of Xor 题解

时间:2023-04-07 22:01:27浏览次数:45  
标签:Xor Min 题解 Sum 贡献 枚举 oplus 两组

先把 \(i\) 对 \(j\) 的约束去掉。没有 \(\min\) 的情况是 trival 的,发现瓶颈在于如何比较两个数之间的大小。

可以发现,对两个二进制数,我们本质上是想要找到它们第一个不同的位置。于是考虑从最高位开始,将 \((a_i,b_i)\) 按最高位分组为 \((0,0),(0,1),(1,0),(1,1)\) 四组。每组内部需要继续枚举低位,因此只考虑两组之间的贡献。

可以发现,有贡献的组对如下:

  • \((0,0),(0,1)\):此时贡献为 \(a_i\oplus a_j\)。
  • \((0,0),(1,0)\):此时贡献为 \(b_i\oplus b_j\)。
  • \((1,1),(0,1)\):此时贡献为 \(b_i\oplus b_j\)。
  • \((1,1),(1,0)\):此时贡献为 \(a_i\oplus a_j\)。
  • \((0,0),(1,1)\):贡献不确定,需要继续枚举,因此我们需要将这两组并在一起向下处理。
  • \((0,1),(1,0)\):贡献不确定,需要继续枚举,因此我们需要将这两组并在一起向下处理。

直接爆算即可。

标签:Xor,Min,题解,Sum,贡献,枚举,oplus,两组
From: https://www.cnblogs.com/bykem/p/17297502.html

相关文章

  • 【题解】P4898 [IOI2018] seats 排座位
    思路线段树。题意可以转化成每次判定有多少个前缀满足所有结点构成矩形。首先排除确定矩阵坐标再数答案的做法,因为太难。所以考虑如何对前缀进行判定。一个简单的想法是维护前\(i\)个点中\(x,y\)坐标的最值,但这样只能暴力看矩阵中的所有元素,跑得很慢。不妨思考一下合法......
  • 【题解】CF472G Design Tutorial: Increase the Constraints
    《正解分块+FFT跑1min,__builtin_popcount暴力跑10s》《没人写正解,CF也不卡》思路正解:分块+FFT乱搞:__builtin_popcount首先我们知道哈明距离可以用一种\(O(|字符集||S|)\)的算法求。具体考虑枚举字符集中的每一个字符,将两个串中是该字符的位置看作\(1\),不是该字......
  • 【题解】臭气弹
    用次数乘上\(P/Q\)来构建增广矩阵,进行高斯消元。在算出每个点被摧毁的概率与所有点的期望出现次数。由于每个点爆炸概率相同,所以每个点被摧毁的概率就是这个点的期望出现次数\(/\)所有点的期望出现次数。#include<bits/stdc++.h>usingnamespacestd;constintN=311;......
  • 荣耀magicbook安装Linux系统boot fail问题解决
    偶然网上冲浪,发现了Debian系的kalilinux有点意思,刚好手边有一台不怎么用的荣耀magicbook,于是准备装个双系统好不容易下完了kali的镜像,使rufus写入了U盘但是在安装过程中怎么安装都显示bootfail,切换了n个版本的Linux系统,发现还是这样,但是实测Debian11是可以进入引导项的最后所......
  • MindSpore开发静态图调试记录
    主要参考资料:静态图语法支持-MindSporemasterdocumentation定位错误:报错会生成rank_0/om/analyze_fail.dat文件,按instruction定位即可#1.ThisfileshowstheparsedIRinfowhengraphevaluatingfailedtohelpfindtheproblem.#2.Youcansearchthelast`----......
  • Angular 复习与进阶系列 – Naming Conversion
    前言命名规范对项目维护是很重要的.Angular对项目的渗透很大的,必须做好命名规范,不然会很乱. Angular NamingConversionInjectionToken=UPPER_SNAKE_CAREconstSERVICE_CONFIG_TOKEN=newInjectionToken('ServiceConfig'); elementattributeandproperty......
  • Programming Deque ADT
    ProgrammingDequeADTDebuggingArrayDequeTipsImplementingLinkedDequeSentinelNodesInvariantsSubmissionInfoSeeanintroductoryvideoforthisassignmentandlogisticshere.(Thisvideoisfromthe20auofferingofthecourse,sotheannouncementsattheb......
  • CF1810E 题解
    一、题目描述:给你一个n个点,m条边的无向图,点带权,起点可任意选择。每走过一个新的点,你的能力值会+1。一开始你的能力值为0。你只能经过点权小于等于你能力值的点。每条边,每个点都可以经过无限次,问能否走遍整个图。如果可以,输出"YES"。否则输出"NO"。......
  • UVA - 108 Maximum Sum 求子矩阵的最大和
    题目大意:给出一个矩阵,求出这个矩阵中的子矩阵的最大和解题思路:和UVA507的题目类似,只不过这次是个矩阵了,换个角度思考,将这个二维数组转换成一维数组思考,用sum存储该列的前N个数字的和,如,sum[3][1]就是第一列的前三个数字的和,这样就可以将其想象成一维的最大连续和了,在枚举行,求其最大的和......
  • minio客户端工具mc使用方式
    官网:英文网址(最好查看英文网址):https://min.io/中文网址(没有及时更新,容易被坑):http://www.minio.org.cn/使用的minio版本是:RELEASE.2021-11-*一、MinIO客户端工具安装1、安装客户端wget-P/usr/bin/https://dl.min.io/client/mc/release/linux-amd64/mcchmodu+x/usr/......