位运算
文章平均质量分 52
alan_cty
蒟蒻一只
别打脸(⊙o⊙)哦
展开
-
GDKOI2016 Day 1 T1 魔卡少女
T1 魔卡少女给出N个数,M个操作。操作有修改和询问两种,每次修改将一个数改成另一个数,每次询问一个区间的所有连续自区间的异或和。原创 2016-03-04 18:57:26 · 1450 阅读 · 1 评论 -
【GDOI2019模拟2019.3.25】芬威克树
Description给出一段伪代码,其中lowbit(x)表示x在k进制下最低非零位的值,你需要维护这样一个东西,支持这两种操作。x<=10^9 q,k<=200000Solution首先每个点x+lowbit(x)唯一,所以所有的点形成了一棵树问题变成了链修改单点求考虑当k为奇数时,所有的操作不会改变x的最低非0位即所有的点形成了以(2x+1)kd,(2x+1&...原创 2019-03-25 22:35:44 · 582 阅读 · 0 评论 -
【GDSOI2018模拟4.19】修墙
Descriptionw × h 是一位神仙。 众所周知,近日长城修得越来越高,across the Great Wall, reach every corner in the world也变得越来越困难。 w × h 想要分析一下某个版本墙的特征。在地图上,土地可以大致用一个无限大的黑白二维矩阵表示,其中用户为白格,墙为黑格。由于墙很高,两个用户能够互相通信当且仅当在网格上这两个白格能够只经过原创 2018-04-20 15:28:58 · 466 阅读 · 0 评论 -
【CF424E】Colored Jenga
DescriptionTomsk 寒冷的冬季傍晚非常无聊——没人想要在这个时间点儿上在街上晃。居住在Tomsk 的市民都坐在温暖的公寓里玩游戏打发时间。他们玩的其中一个游戏唤作“有色积木” 。这个游戏需要三种不同颜色的木块:红色,绿色及蓝色。接着,用这些积木堆出一座n 层的塔。塔中每一层由三块积木组成。虽然这些组成塔的积木可以是三色中的任意一种颜色,但是它们必须平行且紧密排列。本文图中作为样例展示了原创 2017-12-28 17:18:22 · 526 阅读 · 0 评论 -
[51nod1824]染色游戏
Description有 n 个红球, m 个蓝球,从中取出 x 个红球和 y 个蓝球排成一排的得分是 rx⋅by ,其中 r0=b0=1 。 定义 f(t) 表示恰好取出 t 个球排成一排的所有可能局面的得分之和。 两个局面相同,当且仅当这两排球的个数相等,且在对应列位置上的颜色都是相同的。 求有多少 t (1≤t≤n+m) 使得 f(t) 是奇数,为了防止输出过大输出所有的t^2之和 n原创 2017-11-08 16:34:31 · 762 阅读 · 0 评论 -
【GDOI2018模拟7.6】吃干饭
Description求区间[l,r]中的数任意互相异或之后有多少种可能的结果 l<=r<=1e18,数据组数<=100Solution这种题一眼线性基啦~ 虽然我并不太熟练,还自己推了一遍插入 这样直接暴力做有50分 然后打了个表发现了一个规律: 首先l一定会在线性基中, 然后我们知道了线性基中的最后一个数,想要快速找出线性基中的下一个数 假设当前的数的二进制表示是 10100,那么原创 2017-07-06 21:55:03 · 420 阅读 · 0 评论 -
【WC模拟】J
Description由于题面过于丧心病狂就直接贴图了 Solution可以把每个操作变成2进制的异或操作。 那么就是修改加询问前缀异或和为st的数的个数。 线段树\分块都可以做啊。 一个优化:有用的状态只有16种,可以提前处理出来。Code#include <cstdio>#include <cstring>#include <algorithm>#define fo(i,a,b)原创 2017-01-21 20:22:17 · 439 阅读 · 0 评论 -
【WC模拟】Equation
Description n,m<=10^5Solution考虑图论转化,既然每个变量最多只会出现两次,那么我们把出现两次的变量所在的or组看做点,每个出现两次的变量看做边,边权视这两个变量是否相同而定。(0或1) 根据题目条件我们每个点的度数最多为2,也就是只会出现环和链。 设Fi,j,k表示当前做到第i个点,异或值为j,上一位填的是k的方案数,转移显然。 最后分类讨论一下就行了,注意特判自原创 2017-01-19 22:56:39 · 433 阅读 · 0 评论 -
【GDKOI2017模拟1.12】与运算
Description给出一个序列,Fi为前i项进行and运算之后的值。求这个序列的一个排列,使得∑Fi\sum Fi最大。 输出这个最大值。 n<=10^6Solution首先考虑F数组,显然是单调不升的。 那么我们考虑Dp,Dp i表示F数组目前最后一位为i的最大和。注意可以不放满。 那么我们枚举一个数转移,复杂度是O(N^2)的。 转移的话我们可以预处理cnt[i]表示有多少个数a原创 2017-01-16 21:59:54 · 548 阅读 · 0 评论 -
[51nod1169]石子游戏
Description有n堆石子,第i堆有ai个。 现在要从这n堆石子的任意堆中拿走任意个石子,使得如果两个人用这n堆石子玩nim游戏先手必败。 但要求至少有一堆石子不动。 求方案数对1e9+7取模之后的结果。 n<=100,ai<=1e9Solution显然我们只需要异或值为0就好了。 这种东西一般都是考虑位运算啦,对于至少有一堆不取,我们可以容斥,先任意取,在减去全部都取一个然后任意取原创 2016-12-30 12:37:14 · 723 阅读 · 0 评论 -
【WC2015模拟2.6】Circle
Description一开始有个n个在[0,2^m)区间内的数。 每一秒每一个数将会+1,然后对2^m取模。 求在[1,T]秒内,有多少个时间,使得这n个数的异或值为S。 n<=10^5,m<=50,T<=10^16Solution很显然的与位运算有关的题目。 首先我们就相当于求给出一个上界up,[1,up]中有多少个数x使得所有的(ai+x)%2^m的异或值为S。 考虑Dp,发现我们只需原创 2016-12-27 22:01:44 · 555 阅读 · 0 评论 -
[51nod1150]Logarithm
Description给出n个数,求∑i=1n∑j=1nlog10(AixorAj)\sum_{i=1}^{n}\sum_{j=1}^{n}\log_{10}(A_i xor A_j) xor代表异或运算~ n<=1e5,ai<=1e18Solution这种题就是套路了~~ 既然是log10,那么可能的取值就只有18个。 枚举每一个取值x,那么就是异或值在[10^x,10^(x+1)-1)的原创 2016-12-23 12:48:32 · 486 阅读 · 0 评论 -
准备食物
Description给出一个序列,每次询问r,k表示所有的区间[i,r]中有多少个的异或和大于等于k。 n,q<=10^5Solution辣鸡出题人。(虽然我AC了,但是nq的暴力能过60分!) 拿衣服的我天真的认为异或是可以在不等式里瞎搞的。 然而。。。 于是看到这种位运算的题,trie树自然是首选。 这道题的r拍一个序就可以不用可持久化了。 然后,按照位运算每一位推下去就好了。Co原创 2016-07-09 17:04:00 · 543 阅读 · 0 评论 -
[51nod1379]索函数
Description求fib(0)|fib(1)|fib(2)|...|fib(n)mod1e9+7fib(0)|fib(1)|fib(2)|...|fib(n) mod 1e9+7 n<=10^10Solution因为一直是或,所以我们的答案二进制位的每一位都是1. 那么答案就是fib(n)的位数k,2^(k+1)-1. 那么我们就是要快速求出fib(n)的位数。 当n较小的时候,我们就原创 2016-07-07 22:18:39 · 596 阅读 · 0 评论 -
[bzoj1192]鬼谷子的钱袋
Description求最少需要多少个数才能组合(+)成1~n的任意数。 n<=10^9Solution呵呵呵。 乱逛的时候发现了这一道水题。 小学奥数题。 你要选的数肯定是1,2,4,8….2^k 那么答案就是k+1. 而k就等于⌊log2n⌋+1\lfloor\log_2n\rfloor+1Code#include<cmath>#include<cstdio>using name原创 2016-06-19 19:17:29 · 926 阅读 · 0 评论 -
【NOIP2013模拟】期望异或&&【NOI2015模拟9.7】大新闻
Description在区间[0,n)中随机生成一个整数x,然后,有p的概率选择[0,n)中与x异或值最大的y,否则在区间[0,n)中随机选择一个整数y。求x⊕yx\oplus y的期望值。 n<=10^18Solution首先把答案写出来:Ans=1−pn2∑i=0n−1∑j=0n−1i⊕j+pn∑i=0n−1i⊕f(i)Ans={1-p\over {n^2}}\sum_{i=0}^{n-1}\原创 2016-06-29 19:41:47 · 929 阅读 · 0 评论 -
【GDOI2013模拟7】最大异或和
Description你需要维护一个序列,使得它支持以下m个操作。 1:在序列末尾插入一个数,n++。 2:询问在l~r区间中的一个位置p,使得ap^ap+1^..^an^x的值最大,输出这个最大值。 n,m<=300000Solution设bi表示a1^a2^..^ai,那么ans=bn^x^bp-1。 这样子就转化成了区间求异或最大值的问题了,可持久化trie轻松解决。Code#incl原创 2016-04-15 20:34:12 · 1146 阅读 · 0 评论 -
[校内模拟]Invert
Description在一个n*n的棋盘上,每个格子要么是黑色,要么是白色有两个人在博弈,每次操作者可以选择一个白色格子,和一个不超过k的正整数a,然后将以这个格子为右下角的边长为a的正方形反色,需要保证这个正方形不越界,无法操作者输问先手是否必胜白色的格子为给出的m个矩形的并k,n<=1e9,m<=5e5Solution考虑另一个游戏,每个格子有若干个koishi,每次...原创 2019-06-03 15:39:17 · 294 阅读 · 0 评论