随笔分类 -  二进制

摘要:题意:给定一颗n节点的树以及每个节点的权值,另dis(u,v)表示节点u到v路径上的异或和,求不大于i的节点与i组成的有序对的距离的和(1<=i<=n)。 思路:位运算的话大多可以想到按位拆分,统计每一位对答案的贡献,因为每一位的运算都是独立的。所以按位枚举,假设当前是第b位,则dp[x][0]表示 阅读全文
posted @ 2017-02-09 16:37 Kcl886 阅读(310) 评论(0) 推荐(0)
摘要:思路:集合Y中两类数存在是不可能合成X的,一类是比X大的数,一类是X的二进制表示中某些位为0,而这些数对应的二进制表示的位的数字是1。先把这两类数字排除掉, 再对处理后的集合Y中的所有数字进行分位统计,最后那个X的二进制表示中为1的位中数字最小的就是答案了。 1 #include <iostream 阅读全文
posted @ 2017-01-10 00:57 Kcl886 阅读(438) 评论(0) 推荐(0)
摘要:思路:想了好久都想不到怎么居然是直接模仿二进制进位,最后数下有多少个1即可,真是神奇! 1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #inc 阅读全文
posted @ 2017-01-09 12:50 Kcl886 阅读(244) 评论(0) 推荐(0)