
最短路径
文章平均质量分 73
kaiweisun
这个作者很懒,什么都没留下…
展开
-
poj 1062
在一个图中,若从一个结点到另一个结点存在着路径,定义路径长度为一条路径上所经过的边的权值之和。从一个结点到令一个结点可能存在着多条路径,路径最短的那条称作最短路径,其长度成为最短路径长度或者最短距离。 Dijkastra思想(不能包含负权值的边): 设置两个结点集合S和T,S中存放已找到最短路径的结点,T中存放当前还未找到最短路径的结点。初始状态S中只包含起始点u0。然后不断...原创 2011-10-11 09:37:57 · 133 阅读 · 0 评论 -
poj 1603
folyd思想(动归,可以包含负权值的边,但不能有负环): 将图G中顶点编号,从1到n。现在考虑从i到j的最短路径,若k是这条路上的中间结点,那么由i到k和由k到j的这两条子路径应分别是由i到k和由k到j的最短路径。否则,这条由i到j的路径就不是具有最小长度的路径。于是,最优性原理成立,这表明有使用动态规划的可能性。如果k是编号最高的中间结点,那么由i到k的这条路径上就不会有比k-...原创 2011-10-11 14:32:44 · 119 阅读 · 0 评论 -
poj 1125
poj 1125题目大意是股票经纪人要在一群人中散布一个谣言,而谣言只能在亲密的人中传递,题目各处了人与人之间的关系及传递谣言所用的时间,要求程序给出应以那个人为起点,可以在最短的时间内让所有的人都得知这个谣言。要注意从a到b传递的时间不一定等于从b到a的时间,如果没有方案能够让每一个人都知道谣言,则输出"disjoint"。(有关图的连通性,你懂得!但好像不用考虑这种情况一样能AC,只能说...原创 2011-10-11 17:19:39 · 464 阅读 · 0 评论 -
poj 1860
提示:关键在于反向利用Bellman-Ford算法题目大意有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加货币的交换是可以重复多次的,所以我们需要找出是否存在正权回路,且最后得到的s金额...原创 2011-10-18 08:51:27 · 93 阅读 · 0 评论 -
poj 3259
题意:John的农场里field块地,path条路连接两块地,hole个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。我们的任务是知道会不会在从某块地出发后又回来,看到了离开之前的自己。思路:bellman_ford。由于存在负权边,Dijkstra便不能用了。题目简化下,就是看图中有没有负权环,有的话John可以无限次走这个环,使得时间一定能得到一个负值。所以有的存在负...原创 2011-10-18 11:01:59 · 115 阅读 · 0 评论 -
poj 1797
题目大意是就是何处一个图,n个顶点和m条边,每个边都有最大承载量,现在我要从1点运送货物到n点,求能运送货物的最大重量。对于数据,第一行为t代表测试数据个数,第二行为n和m(意义见上),接着m行,每行三个整数分别是代表一条边的起点,终点及最大承重量。输出能运送货物的最大重量,格式见样例。注意数据输完后还要再多输一个空行。对于数据,从1运到3有两种方案方案1:1-2-3,其中1-2承重为3,2-3承...原创 2012-04-24 15:05:23 · 118 阅读 · 0 评论