返回顶部

随笔分类 -  二进制枚举

摘要:题意:有一长度均相同的$01$串集合,每次询问给你一个同长度的$01$串,去和集合中的每个$01$串匹配,若位置$i$的元素相同,则贡献加$w_i$,输出集合中有多少串匹配完后贡献不大于$k$。 题解:集合中元素很少,最多$12$个。先用桶标记集合中的串,然后$O((1<<n)^2)$预处理所有情况 阅读全文
posted @ 2021-06-04 21:33 _Kolibri 阅读(52) 评论(0) 推荐(0)
摘要:题意:给你节点数为$n$的树,每个节点都有自己的权值,求所有路径的上的点的权值按位与的和. 题解:题目给的数据很大,我们不能直接去找.因此我们可以枚举二进制$[1,20]$的每一位,然后再枚举所有点,看它二进制对应位置是否满足条件,之后再去dfs找$1$的连通块即可. 代码: const int N 阅读全文
posted @ 2020-12-19 13:53 _Kolibri 阅读(92) 评论(0) 推荐(0)
摘要:题意:给你一个只含$+\(和\)-\(的字符串,统计它的加减和,然后再给你一个包含\)+,-,?\(的字符串,其中\)?\(可以表示为\)+\(或\)-$,问有多少种情况使得第二个字符串的加减和等于第一个. 题解:首先我们统计第一个字符串的和,然后统计第二个字符串的加减和以及$?\(的个数,然后对于 阅读全文
posted @ 2020-10-09 18:45 _Kolibri 阅读(135) 评论(0) 推荐(0)
摘要:题意:有一张图,.表示白色,#表示黑色,每次可以将多行和多列涂成红色(也可不涂),问有多少种方案,使得剩下黑点的个数为$k$. 题解:又学到了新的算法qwq,因为这题的数据范围很小,所以可以用二进制枚举来将所以情况枚举出来. 关于二进制枚举:对于一个集合$n$,有$2n$个子集,而$[0,2n]$, 阅读全文
posted @ 2020-07-07 10:53 _Kolibri 阅读(506) 评论(0) 推荐(0)