k短路&可并堆
文章平均质量分 79
thy_asdf
我也不知道说什么...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj1455: 罗马游戏
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1455 思路:左偏树练习题 用并查集维护连通,然后开个数组记录每个人是否已被杀死,用可并堆支持合并和求最小值 左偏树是一种支持合并的堆,写起来比手写堆还要短... 只有一个操作,merge(a,b),就是把a,b合并... 具体构建参见论文:http://wenku.baidu.原创 2016-04-22 15:13:35 · 438 阅读 · 0 评论 -
bzoj2809: [Apio2012]dispatching
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2809 思路:很明显忍者之间的关系是一个树形结构 先自底向上枚举管理者x,那么根据题意,我们就要从x的子树中选择尽量多的忍者,且工资总和不超过m 用一个可并堆 到一个点x,就把它的儿子节点的可并堆并起来 显然优先选工资低的,那么维护大根堆,不停地删堆顶,直到工资满足预算即可 #原创 2016-04-22 15:32:30 · 487 阅读 · 0 评论 -
bzoj1598: [Usaco2008 Mar]牛跑步
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1598 思路:裸的k短路,直接用A*+堆即可 A*就是引入一个估价函数h(x)=f(x)+g(x) 优先选择估价小的去搜索 f(x)就是当前到的x已花费代价 g(x)就是估计x到终点还要多少代价 这里f(x)就是出发点S到x的距离 g(x)就是x到终止点T的距离 g(x)可原创 2016-04-22 15:51:48 · 875 阅读 · 0 评论 -
bzoj1975: [Sdoi2010]魔法猪学院
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1975 思路:可以用A*做,但是要手写堆或者用pb_ds的堆,不然会被卡空间 (原题256M,bzoj64M...) 设出发点为S,结束点为T,边权为val(e),边的出发点为head(e),到达点为tai(e) 也可以用论文方法,参见俞鼎力的《堆的可持久化和k短路》论文 首先我原创 2016-04-22 16:30:18 · 1004 阅读 · 0 评论
分享