BZOJ_1179_[Apio2009]Atm_tarjan+spfa 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1179 分析: 显然有环没法直接最长路,那就缩个点再跑。 酒吧连汇点。 代码: ...
题面: 传送门 思路: 汽车油箱最多只能装10格油,因此可以依据油量建立分层图(共11层),然后spfa跑最短路 不用把每一条边都建出来,用的时候判断就好了 没了 真是披着网络流外衣的最短路啊 Code: ...
分类:
其他好文 时间:
2018-02-19 20:43:44
阅读次数:
182
巧妙的拆点方式,首先把1看成黑点,0看成空的,几次交换就可以看成一条路径 1)从容量上看,这条路径为1-2-2-2-2-2-……-2-1 2)从费用上看,这条路径每条边费用都是1 于是用一种巧妙的拆点方式,把一个点拆成三个,连两条边,成为一条链, 然后如果是黑点的话就由s向中间那个点连边,如果是路过 ...
分类:
其他好文 时间:
2018-02-18 18:37:35
阅读次数:
182
D. Buy a Ticket 问题转换为对于每一个点x,求出一个点y,使得xy的最短路2倍+在y举办的费用最小。 考虑建一个超级源点,向每一个点连一条费用为其举办所需费用,并且原图中的边权值*2,跑一遍最短路,每一个点到超级源点的最短路即为答案。 卡spfa,请用dijkstra。 1 #incl ...
分类:
其他好文 时间:
2018-02-18 15:39:49
阅读次数:
217
用到了网络流的思想(大概)。新建一个源点s,所有边权扩大两倍,然后所有的点向s连边权为点权的无向边,然后以s为起点跑spfa(S什么L优化的),这样每个点到s的距离就是答案。 原因的话,考虑答案应该是min(2\ dis[i][j]+a[j]} ),那么每个点到s的距离就是若干条边边权的二倍加上某个 ...
分类:
其他好文 时间:
2018-02-17 22:27:28
阅读次数:
207
Description 问题描述:链接 思路 裸题,判断图是否有负环,用 bellman_ford 或者 spfa 。 #include<iostream> #include<algorithm> #include<vector> #include<queue> #include<cstring> ...
分类:
其他好文 时间:
2018-02-16 11:13:40
阅读次数:
173
- 题目大意 给你一个有向图,问你定义一个环的平均值为这个环上所有边的平均值,问你最小的环的平均值是多少。 - 解题思路 先利用spfa来判断负环,然后用二分去判断若当前的二分值是mid,让所有的边都减去这个值,如果此时图中出现负环,则说明有环的平均值比这个更小。 - 代码 ...
分类:
其他好文 时间:
2018-02-15 20:15:50
阅读次数:
168
两遍 spfa 然后建立分层图拓扑排序 dp 一下。 写得很差劲。效率很低。 时间复杂度 $\mathrm{O}(Tnk)$。 参见 "这里" 秒懂。 ...
分类:
其他好文 时间:
2018-02-15 19:59:25
阅读次数:
214
- 题目大意 如题所示获得一个物品有两种方式: 1. 直接购买该物品,第i件物品花费的钱为ci 2. 用两件其他物品合成所需的物品,一共有m种合成方式。 问获得1号物品的最少花费。 - 解题思路 把每种合成方式当成路径(注意是有向图把每种方式弄成两条边)枚举物品,以第i个物品为起点做spfa,做n次 ...
分类:
其他好文 时间:
2018-02-15 17:53:33
阅读次数:
237
T1 以为计算几何不会, 据说正解做法很玄学每条线段拆成若干点跑SPFA,取两个最小距离的点构成的线段继续做. 爆0 T2 据说是去年二试加强版 我写了dfs 最后10分 T3 先吐槽一下附中的老爷机,写了40的矩乘被卡成10分,搞得和暴力分一样 其次T3居然是BZOJ原题 最后10分 BZOJ35 ...
分类:
其他好文 时间:
2018-02-15 12:30:49
阅读次数:
340