摘要:
http://poj.org/problem?id=2253一个池塘中分布着n块可供青蛙跳跃的石头,坐标分别为sto[i].x和sto[i].y,给出Freddy和Fiona站的石头,问Freddy想借助这些石头,跳去Fiona那,它的跳跃距离至少是多少?最短路的变形啊 松弛方程 dis[j]=max(dis[k],map[k][j]);为什么松弛方程是上面那样呢?》首先我们回忆一下如果dis[j]>dis[k]+map[k][j],则更新其值是丛原点到j点的最短距离,那么在此dis[j]=max(dis[k],map[k][j])表示借助中间点跳的话,要跳的j点,则在路径中最长粗条di 阅读全文
摘要:
#include<stdio.h>#define N 200#define max 999999int map[N][N],d[N];int n,ans,f;void init(){ int i,j; for(i=0;i<=n;i++) { d[i]=-max; for(j=0;j<=n;j++) map[i][j]=max; } f=0;ans=max;}void floyd(){ int i,j,k; for( i=1;i<=n;i++) { for(j=1;j<=n;j++) ... 阅读全文