位运算
追风者_
要我自我介绍,挺秃然的
展开
-
【暑训排位 #7 A】树状数组逆序对 异或求和 详解
给定长度为N的序列A1, A2, … AN,求其中xor是按位异或运算。题意:如题思路:1.如何对异或快速求和?这个地方推了好久。我们从异或的性质入手,一串数两两异或下来,一个规律是不会比这串数的最大值还大的(毕竟不会多1),另一个是对于每个位,只有当相异的时候才会有正贡献(废话)。那我们就按位分析。比如 111 101 100 (先看两两没有限制地异或,先不考虑Ai > Aj)我们拿低一位来看,一共有2个1,1个0,他们匹配的时候就有2*1种得到贡献的可能(01搭配),那么低一位就有原创 2020-07-06 17:34:23 · 340 阅读 · 0 评论 -
【Petrozavodsk Programming Camp, Winter 2020 Problem B】 Binomial DP 详解
There are people that wont be happy with solving a problem, unless the actual task is obscured by an elaborateand somewhat unnecessary story. If you are one of these people, then this problem is NOT for you.You are given a sequence of non-negative intege原创 2020-05-24 19:10:38 · 912 阅读 · 0 评论 -
【AcWing 91】 最短Hamilton路径 状压DP + 位运算 详解
给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]>=a[x,z]。输出格式输出一个整数,表示最短Hamilton路径的长度。数据原创 2020-05-20 22:44:55 · 350 阅读 · 0 评论 -
【模板】矩阵快速幂 洛谷 P3390
题目背景矩阵快速幂题目描述给定 n\times nn×n 的矩阵 AA,求 A^kAk。输入格式第一行两个整数 n,kn,k 接下来 nn 行,每行 nn 个整数,第 ii 行的第 jj 的数表示 A_{i,j}Ai,j 。输出格式输出 A^kAk共 nn 行,每行 nn 个数,第 ii 行第 jj 个数表示 (A^k)_{i,j}(Ak)i,j ,每个元...原创 2020-03-27 00:43:36 · 368 阅读 · 0 评论 -
【校队排位赛#9 K】Codeforces 578 "Or" Game 贪心 位运算 前后缀
“Or” Gametime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given n numbers a1, a2, …, an. You can perform at most k operations. For eac...原创 2020-03-21 19:36:32 · 102 阅读 · 0 评论 -
【校队排位赛#5 B】 codeforces 627 A. XOR Equation 详解
A. XOR Equationtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputTwo positive integers a and b have a sum of s and a bitwise XOR of x. How many...原创 2020-03-07 22:36:09 · 259 阅读 · 0 评论 -
【LeetCode】 78. 子集【位运算法】
本来这个题算是一道回溯类的题目,但是在网课上学到一个位运算的方法,感觉新颖,记录一下。思路:1.首先可以确定的是,对于n个数,它有多少个子集是可以确定的,即是2的n次方(包含空集和本身)。2.那么顺着上面的思路,也就是2的n次方种情况,我们如果能知道每种情况下出现的数是什么,就能得到答案了。那么怎么实现呢?3.这里采用了位运算的方法解决这个问题。既然我想着遍历一遍i从1到2的n次方,那...原创 2020-01-21 15:01:12 · 100 阅读 · 0 评论 -
【LeetCode】 137.只出现一次的数字 II (位运算)
这是一道位运算好题,下面说一下位运算的主要思路:1.因为只有一个数只出现了一次,而其他的数都出现了3次,那么在32位二进制数中,如果我们对每个数每一位出现1的个数进行统计,然后把这个结果%3后在放回这一位上,就得到了剩下的那个数在这个位上的数,什么意思呢?这里来举几个例子11011 11011 11011 01001这里三个重复的11011,我们先从最高位看,遍历完发现有三个...原创 2020-01-18 20:23:56 · 246 阅读 · 0 评论 -
SCAU 2019级寒假训练 E - Secret Origins 【位运算方法】
题意:找到一个最小的,比N大,且二进制中1的个数与N二进制中1的个数相同,的数。思路:在N的二进制中,从低位到高位,找到第一个出现01的位置,然后将01置为10,然后后面的全部变成0,这一步是控制比原来的数N大,相当于进了一位。比如N的二进制10111->11000,这是第一步,并且将原来的连续1区间存下来,用于等下后面添1,即是10111->00111;然后我们现在是想控制...原创 2020-01-16 10:58:54 · 221 阅读 · 0 评论