给你n个数,问你将它们取任意多个异或起来以后,所能得到的第K小值? 求出线性基来以后,化成简化线性基,然后把K二进制拆分,第i位是1就取上第i小的简化线性基即可。注意:倘若原本的n个数两两线性无关,也即线性基的大小恰好为n时,异或不出零,否则能异或出零,要让K减去1。 这也是线性基的模板。 ...
分类:
其他好文 时间:
2017-09-12 01:23:52
阅读次数:
149
题意:给你一张带权有向图,问你某个点集中,两两结点之间的最短路的最小值是多少。 其实就是dijkstra,只不过往堆里塞边的时候,要注意塞进去它是从集合中的哪个起始点过来的,然后在更新某个点的答案的时候,如果它是集合中的点,除了最开始入堆的那次以外,要再更新一遍,并且不能用从本身过来的路径进行更新。 ...
分类:
其他好文 时间:
2017-08-23 10:16:58
阅读次数:
177
【题目大意】 给定一个数组,求这些数组通过异或能得到的数中的第k小是多少。 传送门:http://vjudge.net/problem/HDU-3949 【题解】 首先高斯消元求出线性基,然后将k按照二进制拆分即可。 注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k--。 然后HDU输出l ...
分类:
其他好文 时间:
2016-10-09 22:57:33
阅读次数:
205
http://www.cnblogs.com/rainydays/archive/2013/03/08/2950258.html http://www.cnblogs.com/ziyi--caolu/p/3216827.html 第一种: 邻接+统计数量 第二种: 二进制拆分+01背包 value ...
分类:
其他好文 时间:
2016-07-03 23:29:00
阅读次数:
173
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5589对于u,v的xor和就是u到根的xor和 xor上 v到根的xor和。看到nm,那么用二进制拆分的思想,建一棵字典树,维护字典树的子树大小。显然>m时,从大到小枚举二进制位,存在xor和的某个二进制位为...
1到6的卡分别各有有限制的张数,问能不能恰好分,总张数不能超过20000. 很明显是多重背包问题,上去果写了个三重循环,然后就T了,重新打开背包九讲,找到了多重背包的二进制拆分优化,把其中一维n的复杂度简化为logn的复杂度。 二进制拆分优化:就是1,2,4,2^k(满足和小于分解数最大的k),二进...
分类:
其他好文 时间:
2015-11-01 17:48:07
阅读次数:
146
文章作者:Yx.Ac 文章来源:勇幸|Thinking(http://www.ahathinking.com) 转载请注明,谢谢合作。---前面已经回顾了01背包和完全背包,本节回顾多重背包的几种实现形式,主要有以下几方面内容:==多重背包问题定义 & 基本实现==多重背包二进制拆分实现==防火防....
分类:
其他好文 时间:
2015-04-06 21:45:30
阅读次数:
193
文章作者:Yx.Ac 文章来源:勇幸|Thinking(http://www.ahathinking.com) 转载请注明,谢谢合作。---前面回顾了01背包,在此基础上本节回顾完全背包的几种实现形式,主要有以下几方面内容:==完全背包问题定义 & 基本实现==完全背包二进制拆分思想==完全背包使....
分类:
其他好文 时间:
2015-04-06 21:41:01
阅读次数:
122
题目:有一些石头,每块石头有一个价值价值(1~6中的一个整数),现在把石头分成两组,
问能否分成价值和相同的两组。
分析:dp,01背包。背包容量为总和的一半,判断能否放满即可。
说明:数据较大,使用二进制拆分╮(╯▽╰)╭。
#include
#include
#include
using namespace std;
int f[60001],c[6]...
分类:
其他好文 时间:
2015-03-03 11:48:31
阅读次数:
140