随笔分类 -  其他——位运算

posted @ 2019-08-18 20:23 wxyww 阅读(180) 评论(0) 推荐(0) 编辑
摘要:"题目链接" problem 给出n个点,每个点有权值,求最小生成树。定义一条边的代价为所连接两点的权值异或值。 solution 考虑分治,根据最高位为0还是1分为两部分。然后分别求最小生成树。合并的时候就将最高位为0的一部分插入到trie中,然后从最高位为1的一部分中查询。 注意对trie的清空 阅读全文
posted @ 2019-02-21 15:16 wxyww 阅读(195) 评论(0) 推荐(1) 编辑
摘要:思路 一道比较经典的题。 $x\otimes 3x=2x$等价于$x \otimes 2x=3x$ 异或其实就是不进位的加法。因为$x + 2x=3x$,所以只要满足$x+2x$在二进制上没有进位即可。很容易发现其实就是要求$x$的二进制位置上没有相邻的两个$1$。 对于第一问,很裸的数位$dp$ 阅读全文
posted @ 2019-01-23 14:50 wxyww 阅读(282) 评论(0) 推荐(0) 编辑
摘要:听attack学长讲完课,整理一波 基本运算 按位或 $1|1 = 1,1 | 0 = 1,0|0 = 0$ 按位与 $1\&1=1 ,1 \& 0 = 0,0 \& 0 = 0$ 异或 $1 \bigoplus 1 = 0,1\bigoplus 0 = 1,0 \bigoplus 0 = 0$ 异 阅读全文
posted @ 2018-10-17 06:48 wxyww 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题目 思路 这个题目看了很久没有思路,旁边的大(S)佬(B)不到十分钟就秒了。知道正解之后感觉自己太菜了。 首先题目意思就是,要找到两个数,使得这两个数中所有的数码都是对应的。也就是x的数码中如果有1,2,3那么y中也必须有1,2,3对个数不做限制。那么就用一个数来表示一些数码组合。比如说123,那 阅读全文
posted @ 2018-10-09 21:40 wxyww 阅读(139) 评论(0) 推荐(0) 编辑
摘要:"hihocoder1509" 思路 对于每两个数,从二进制的高位到低位考虑,发现,若前面一个的当前位是1,后面一个的当前位置是0,那么s的当前位置必须是1。反之,若前面是0,后面是1,那么s的当前位置必须是0。如果出现矛盾的情况则直接输出0。如果两个数高位已经可以判断出大小了,那么后面的位置随便选 阅读全文
posted @ 2018-10-09 16:41 wxyww 阅读(166) 评论(0) 推荐(0) 编辑
摘要:"luoguU42592" 20分思路 对给出的序列求出前缀和,然后$n^2$暴力枚举即可拿到第一档分 40分思路 对于数列中的数都相同的情况。只需要特判即可。只要特别注意全都是0的情况即可。 100分思路 仔细考虑一下题目意思就可以知道,其实这个题就是求出前缀和之后,对于每个位置上的数,在前面的所 阅读全文
posted @ 2018-10-08 08:06 wxyww 阅读(145) 评论(0) 推荐(0) 编辑
摘要:"luogu2114" 思路 因为位运算对于每一位是独立的,所以对每一位都对这n个数进行操作,然后观察最后得出的是1还是0。并且保证每一位拼起来之后要比m小。 代码 cpp include include using namespace std; typedef long long ll; cons 阅读全文

点击右上角即可分享
微信分享提示