最短路径算法
Hanks_o
一名。
展开
-
bzoj1179: [Apio2009]Atm(强联通+最短路)
题目传送门 这道题不做评论了。 综合题。解法: 强联通缩点。 缩点后同一个团体内的点都可以到达。 那么只要进入这个团体的某一个点就可以获得这个团体所有的钱。然后求出到每一个团体能获得最多的钱(最短路咯) 最后问每一个酒吧所在的团体,比较答案呗。代码实现:#include<cstdio> #include<cstring> #include<cstdlib> #include<iostre原创 2017-09-26 13:10:55 · 274 阅读 · 0 评论 -
bzoj1003: [ZJOI2006]物流运输(最短路+Dp)
题目传送门 首先这道题肯定有连续几天的航行是一样的。 那么我们不用去求出每天的方案。 只需求出每一段(连续的几天)的最短路然后*天数即可。不难想到Dp。 用f[i]表示前i天的最小花费。 那么方程很容易就转化为: f[i]=min(f[i],f[j]+spfa(j+1,i)+K); 方程表示的是前j天的最小花费+第(j+1)天到第i天用同一种方案的花费+修改一次方案的花费。 还是比较原创 2017-09-16 09:34:17 · 402 阅读 · 0 评论 -
bzoj1295: [SCOI2009]最长距离(spfa)
题目传送门 。。 解法: 水题啊数据范围那么小。 用f[i][j][k][l]表示(i,j)到(k,l)最少经过几个障碍。 这个用spfa很容易实现啊。 然后枚举每个点对如果经过<=T就维护下答案就行了呀。 代码实现: #include<cmath> #include<cstdio> #include<cstring> #include...原创 2018-02-28 13:30:54 · 213 阅读 · 0 评论 -
bzoj3875: [Ahoi2014&Jsoi2014]骑士游戏(spfa+Dp)
题目传送门 。 解法: 一开始想到spfa。 连向他杀死后产生的怪兽。表示普通攻击 连向ed表示法术攻击杀死的。 那么很显然最短路是不行的。那么就gg了。。 做法蛮神的。 反向连:产生的怪兽连向原怪兽。 那么F[i]表示消灭怪兽i的最小值 那么显然等于min(Ki,F[j]的和) 【不想用数学符号系列】 那么可以进行Dp。 f[i]表示上一次i在队列里的答案。 那么更新...原创 2018-03-20 14:37:09 · 254 阅读 · 0 评论