随笔分类 -  数学——位运算

摘要:CodeForces - 981D 从高位到低位去枚举,如果存在一种分配>=(ans|i),ans|=i;检验的时候用区间dp,f[i][j]表示前i个分成j段能不能成功,当然每一段都>=(ans|i) #include <iostream> #include <cstdio> #include < 阅读全文
posted @ 2020-02-22 20:17 WeiAR 阅读(134) 评论(0) 推荐(0) 编辑
摘要:CodeForces - 627Ahttps://vjudge.net/problem/326413/origina+b == (a&b)<<1 +(a^b);然后是位运算,如果对于这一位置,异或值为1时,有两种可能,由乘法原理,答案<<1。如果s==x,就会出现一方全0,一方全1的情况,所以-2. 阅读全文
posted @ 2019-07-18 10:50 WeiAR 阅读(163) 评论(0) 推荐(0) 编辑
摘要:2016年省赛 G Triple Nimnim游戏,要求开始局面为先手必败,也就是异或和为0。如果n为奇数,二进制下最后一位只有两种可能1,1,1和1,0,0,显然异或和为1,所以方案数为0如果n为偶数,举个例子,14,二进制为1110,我们按位来拆1110==1000+100+101000=100 阅读全文
posted @ 2019-04-30 11:23 WeiAR 阅读(167) 评论(0) 推荐(0) 编辑
摘要:P2326 AKN’s PPAP比较裸的贪心从高位向下枚举,如果当前位为1的个数大于1,ans+=(1<<i),然后从这些数中再向下枚举。 阅读全文
posted @ 2017-10-25 16:24 WeiAR 阅读(372) 评论(0) 推荐(0) 编辑
摘要:猫猫的小鱼catfish内存限制: 64M猫猫是丛林里很多动物心中的天使,她为此十分自豪。猫猫最爱吃鱼了,她每天都要去池塘钓鱼吃。猫猫经常吃鱼脑,数学特别强,然而,小女生的性格决定了她的贪玩。一天,猫猫钓到了很多条鱼。她并不想马上就把可怜的鱼儿吃掉,而是先折磨够之后再吃(有句话叫什么来着~最毒不过猫 阅读全文
posted @ 2017-10-24 11:44 WeiAR 阅读(477) 评论(0) 推荐(0) 编辑
摘要:P1590 失踪的7进制转换的题目,如果把一个10进制的数当成9进制,相当于没有9这个数字,题目失踪了7,但是无所谓。如果当前的大于7,它就跳过了一个数字,向左移动1位。 阅读全文
posted @ 2017-10-24 07:49 WeiAR 阅读(486) 评论(0) 推荐(0) 编辑
摘要:P3917 异或序列暴力前缀异或枚举每一个区间,再求和,60分。正解:按每一位来做对于区间[l,r],如果它对答案有贡献,区间中1的个数一定是奇数,可以按每一位取(1<<i)的前缀和,q[r]-q[l-1]一定是奇数,那只要保证端点值奇偶性不同即可。根据乘法原理,奇数*偶数就是满足条件的区间个数,这 阅读全文
posted @ 2017-10-23 15:40 WeiAR 阅读(313) 评论(0) 推荐(0) 编辑
摘要:P1562 还是N皇后原来,就会位运算搞八皇后,当复习一下。可行的位置是1,其他是0比如11011到下一行的时候,对应的左斜线和右斜线要移一位 阅读全文
posted @ 2017-10-20 16:53 WeiAR 阅读(488) 评论(0) 推荐(0) 编辑
摘要:P2431 正妹吃月饼 我一开始是a<=2^n-1<=b,直接输出n=(int)log(b+1)/log(2); 50分,没有仔细分析2^n-1<a但是2^(n+1)-1>b的情况。 这里考虑位运算 在l小于r的基础上从小到大|1,最后有多少个一加起来就可以了。 阅读全文
posted @ 2017-09-24 11:30 WeiAR 阅读(84) 评论(0) 推荐(0) 编辑
摘要:背包五讲 1. 01背包,一种物品数量只有一个,要么选要么不选,v从后向前保证了只可能选一次。 2. 完全背包,物品的数量不限,v从小到大,就免除了数量的限制。 3 多重背包,给定物品的数量,num,多加一维,i->num,循环num次,满足了数量,记得不要j*w[type],这样就相当于等差数列求 阅读全文
posted @ 2017-08-17 16:01 WeiAR 阅读(162) 评论(0) 推荐(0) 编辑
摘要:关于二进制 二进制是个好东西,二进制多用于位运算中,而且它的这一个特性能让O(n)优化到O(log2n),用1,10,100,1000....进行组合,能组成所有的数字,因为每个数都可以用二进制来表示,比如1010110,就可以用1000000,10000,100,10的组合表示,经典用法,倍增的R 阅读全文
posted @ 2017-08-17 11:07 WeiAR 阅读(191) 评论(0) 推荐(0) 编辑
摘要:洛谷P2420 让我们异或吧 先bfs求根节点到每个点的路径异或值,因为a^c^b^c=a^b,所以输出d[x]^d[y]即可。 阅读全文
posted @ 2017-08-15 15:50 WeiAR 阅读(113) 评论(0) 推荐(0) 编辑