思路:一眼秒的水题,就是让你求Cnk 思路:跑一遍最大生成树。因为要达到最优的话,走的路径一定是最大生成树上的。 然后对于每次查询,二分答案去找小于k的数的个数。因为对于一棵树,有几条小于k的边,他就会被分割为k+1块。所以我们只要查询小于k的数的个数+1即为答案。 ...
分类:
其他好文 时间:
2017-11-05 23:43:26
阅读次数:
434
题解: 首先只有存在的路有可能有值 然后在存储矩阵的同时对于本来就有边的情况直接存下来这条边的值 然后跑一次最大生成树 在最大生成树的同时就可以求出矩阵的信息。 代码: ...
分类:
其他好文 时间:
2017-11-04 17:52:32
阅读次数:
194
分析:非常像货车运输那道题.先求一下最大生成树.求完之后会发现并不好处理.通常这类求生成树的题目不会就分析kruscal算法的性质.每往最大生成树中加一条边,如果配重大于这条边权,那么这条边所连的两个集合就都要建一个仓库.也可以这么想:本来在所有点都建仓库,如果配重小于这条边的边权,那么少建一个仓库 ...
分类:
其他好文 时间:
2017-11-03 11:25:21
阅读次数:
193
这题的题意是:对于每组x、y,求x到y路径上最小边权的最大值。于是可以使用最大生成树,因为最大生成树满足性质:生成树中最小边权最大,且任意两点间路径上最小边权最大。有了树之后,要求路径,那就要考虑LCA。首先,这题可以树剖,但是我太懒了,于是写了倍增233具体搞法:Kruskal跑出最大生成树,然后 ...
分类:
其他好文 时间:
2017-11-01 13:38:03
阅读次数:
260
Social Net ZOJ - 3649 题意: 反正原题题意我是看不懂... 参考:http://www.cnblogs.com/names-yc/p/4922867.html 给出一幅图,求最大生成树,输出边权之和,并在这棵树上进行查询操作:给出两个结点编号x和y,求从x到y的路径上,由每个结 ...
分类:
Web程序 时间:
2017-10-30 11:21:18
阅读次数:
238
题目大意:给你个无向图,每条边非黑即白,判断其生成树能否包含斐波那契数条白边 具体思路:把边赋一个权值(白边为1,黑边为0),做一遍最小生成树,做一遍最大生成树 然后我们就可以知道至少要几条白边,至多要几条白边 然后判一下这个区间内有没有斐波那契数就好了 AC代码 ...
分类:
其他好文 时间:
2017-10-29 23:17:50
阅读次数:
197
这个题要求货车从a到b最大能运多少货物(不能输出-1),那么自然而然的就可以想到最大生成树,这个很好求,重点在于如何快速的查找树上两点间的最大边权,这个时候我们可以运用倍增来解决,因为这两个点都在树上,显然联通它们的路径上有些边是一定要走的,这些边就是它们到最近公共祖先的边,那么答案就在这些边当中, ...
分类:
其他好文 时间:
2017-10-29 15:15:20
阅读次数:
152
这题是吴老师推荐的,于是我就去做了。 根据题意,在完成最大生成树后,对于树上从x到y的一条路径,求出最大的ck-cj(j<=k,ci为路径上第i个点的权值)。 我一开始的想法是二分,记路径xy的中点是mid,路径ab的答案记为ans(a,b),最大值为mx(a,b),最小值为mn(a,b),那么,a ...
分类:
Web程序 时间:
2017-10-29 12:59:33
阅读次数:
282
1.转圈游戏 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴 ...
分类:
其他好文 时间:
2017-10-27 01:56:56
阅读次数:
201
(本人比较笨,没写LCA,在树上暴力跑过了此题。) 可以证明答案一定在最大生成树上,因为如果答案比最大生成树上的路径更优,那么最大生成树一定不是正确的。反证之。 同时注意到最大生成树过程中是使用了并查集的,所以不会出现某些点“被丢下”的情况,希望读者不必在此纠结。 我们跑完最大生成树之后,已经有了一 ...
分类:
其他好文 时间:
2017-10-26 18:53:20
阅读次数:
187