随笔分类 -  图论--最大最小生成树

摘要:问题描述 每条边两个权值 $x,y$,求一棵 $(\sum x) \times (\sum y)$ 最小的生成树 Sol 把每一棵生成树的权值 $\sum x$ 和 $\sum y$ 看成平面上的一个点 $(X,Y)$ 那么就是要求 $X \times Y$ 最小 设 $k=X \times Y$, 阅读全文
posted @ 2018-08-06 20:42 Cyhlnj 阅读(292) 评论(0) 推荐(0)
摘要:Sol 暴力就是每个建筑物跑一遍 $BFS$ 然后最短距离建最小生成树,询问倍增 正解比较巧妙 每个点记录一个 $dis$ 表示这个点到最近建筑的距离,$vis$ 表示最近的是哪一个 当一个建筑物走到它时,如果有其它的走到了这个点,那么直接两个建筑物连边 cpp include define IL 阅读全文
posted @ 2018-06-12 07:40 Cyhlnj 阅读(184) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 假如我们知道所有的前缀和数组,差分以下就得到了答案 对于一组区间$[l, r]$ 我们就知道了$S[r] S[l 1]$的值,$S$即前缀和 那么如果把这看成一条边$(l 1,r)$,那么最后只需要所有的点联通就可以求出所有点对之间的关系 那不就是最小生成树了 直接$n^2 阅读全文
posted @ 2018-03-28 13:26 Cyhlnj 阅读(143) 评论(0) 推荐(0)
摘要:题面 "luogu" Sol 好久没写$LCT$ 然而写跪了$TAT$ 把边从小到大加入森林 如果形成环,就替换最小的边 如果已经是树,更新答案 $LCT$维护 cpp include define RG register define IL inline define Fill(a, b) mem 阅读全文
posted @ 2018-03-22 17:22 Cyhlnj 阅读(151) 评论(0) 推荐(0)
摘要:题目 "Bzoj" Sol 神题! 二分所有的白边减去一个值,这样做$kruskal$就会多选一些白边 就这样 二分范围为$[ 101, 101]$!!! 阅读全文
posted @ 2018-03-14 15:37 Cyhlnj 阅读(135) 评论(0) 推荐(0)
摘要:题面 "传送门" Sol 最小生成树的性质: 对于每一个$MST$,每一种边权所使用的边数相同 所有$MST$中边权$≤w$的边组成的图的连通性相同 那么这道题就枚举没个权值选那些边,如果连的个数和原来的相同就统计 最后乘法原理即可 如果同边权过多就只能用矩阵树定理了 然而我太菜了不会。。 cpp 阅读全文
posted @ 2018-02-27 15:02 Cyhlnj 阅读(185) 评论(0) 推荐(0)
摘要:题意 给你n个点,1为起点,n为终点,要求所有1到n所有路径中每条路径上最小值的最最值。 思路 不想打最短路 跑一边最大生成树,再扫一遍1到n的路径,取最小值即可,类似Frogger POJ - 2253,代码都没怎么改 常数巨大的丑陋代码 # include <stdio.h> # include 阅读全文
posted @ 2017-07-26 21:25 Cyhlnj 阅读(150) 评论(0) 推荐(0)
摘要:题意 给你n个点,1为起点,2为终点,要求所有1到2所有路径中每条路径上最大值的最小值。 思路 不想打最短路 跑一边最小生成树,再扫一遍1到2的路径,取最大值即可 注意g++要用%f输出!!! 常数巨大的丑陋代码 # include <stdio.h> # include <stdlib.h> # 阅读全文
posted @ 2017-07-26 16:38 Cyhlnj 阅读(116) 评论(0) 推荐(0)
摘要:觉得题目水的离开 不屑的大佬请离开 不会图论的请离开 ……. 感谢您贡献的访问量 ————————————华丽的分割线———————————— 题面: 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物 阅读全文
posted @ 2017-07-15 21:42 Cyhlnj 阅读(175) 评论(0) 推荐(0)