hdu4849 Wow! Such City!(最短路dijkstra)...
分类:
其他好文 时间:
2014-07-09 12:57:49
阅读次数:
141
题目链接:hdu 4849 Wow! Such City!
题目大意:有N个城市,给定计算两两城市距离的公式,然后求0到1~N-1的城市中,最短路径模掉M的最小值。
解题思路:先根据公式求出距离C矩阵,注意中间连乘3次的可能爆long long,然后用裸的dijstra算法求最短路。
#include
#include
#include
#include
using nam...
分类:
Web程序 时间:
2014-07-09 12:56:23
阅读次数:
231
dijkstra求最短路和次短路的求法和计算 模板
dijkstra求最短路的变形。
外循环要循环2*n-1次,因为dis[n][2]有2*n个状态,而dis[s][0]已经用过一次。
算法:
1、如果比最短路短就更新最短路和次短路。
2、如果和最短路相等,更新最短路的计数。
3、如果和次短路相等,更新次短路的方法数。
4、如果比次短路短,更新次短路。
#...
分类:
其他好文 时间:
2014-07-09 12:41:26
阅读次数:
205
第一个问题:
在原图无负环的前提上,为什么增广时的最短路算法不会陷入负环,即为什么增广后的残图不会出现负环?
其实这是一个很浅显的问题,可是我纠结了好长时间,233。
首先假设残图会出现负环,则其出现负环的原因必然是增广后某些反向弧被加入的残图中。
而增广路肯定是无环的,所以这些反向弧只可能是负环的一部分。
设这些反向弧组成的路径为P,P上各反向弧对应的边组成的路径为P',负环的...
分类:
其他好文 时间:
2014-07-09 12:33:29
阅读次数:
221
模板
题意:给你一个图,1总是为根,每个边有单位价值,每个点有权重。
每条边的价值 = sum(后继节点权重)*边的单位价值。
求树的最小价值,即构成一棵树的n-1条边的最小价值。
算法:
1、因为每个边的价值都要乘以后来访问的节点的权重,而走到后来访问的点必经过这条边。
实际上总价值就是 到每个点的最短路径*这个点的权重。
2、但是这个题 数据量真的太大了,50000个点...
分类:
其他好文 时间:
2014-07-09 11:33:57
阅读次数:
273
解法有很多奇葩的地方,比如可以到达终点再跳回去再跳回来(比如有两个点)。。。。反正就是不能有最短路,不过没关系,算法都能给出正确结果
思想:和求最短路上的点套路一样,spfa先正着求一次,再反着求一次最短路,然后枚举每条边找dist_zheng[i] + len + dist_fan[j]的第二小值即可!注意不能用邻接矩阵,那样会MLE,应该用邻接表
/*
poj 3255
...
分类:
数据库 时间:
2014-07-09 11:28:13
阅读次数:
245
题意:给你N*N的网格,‘.’表示可以走,‘#’表示不能走,m条管道,每条管道有起点和终点坐标,
Bob每次可以走到相邻的网格花费1s,问Bob走完m条管道要花多少时间;Bob在管道内不计算时间
即计算Bob从管道 i 的出口走到管道 j 的入口的时间Dis(e[i],s[j])的最小和,起点可以任意;
思路:看了题解说是状态压缩DP然后深入理解了下。
首先...
分类:
其他好文 时间:
2014-07-09 10:14:02
阅读次数:
234
HDU 4849 Wow! Such City!
题目链接
题意:按照题目中的公式构造出临接矩阵后,求出1到2 - n最短路%M的最小值
思路:就根据题目中方法构造矩阵,然后写一个dijkstra,利用d数组取求答案即可
代码:
#include
#include
#include
#include
using namespace std;
const lo...
分类:
其他好文 时间:
2014-07-09 09:11:12
阅读次数:
199
题意:求经过所有的管道的最短路程,管道内的时间不算
思路:首先BFS处理出管道出口到其他管道入口的距离,然后在队友的指导下明白了状态转移
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 16;
const int INF = 0x3f3f3f3f;
struct N...
分类:
其他好文 时间:
2014-07-09 09:09:21
阅读次数:
208