hdu_1596最短路小变形
2012-02-28 19:56
260 查看
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; double my_map[1010][1010]; double dist[1010]; int s[1010]; void dij(int n,int v) { int i,j,dir; double max;//注意max的数据类型 for(i=1;i<=n;i++) { s[i]=0; dist[i]=my_map[v][i]; } dist[v]=0; s[v]=1; for(i=1;i<=n;i++) { max=0; for(j=1;j<=n;j++) { if(s[j]==0&&dist[j]>max) { max=dist[j]; dir=j; } } if(max==0) break; s[dir]=1; for(j=1;j<=n;j++) if(s[j]==0&&(dist[dir]*my_map[dir][j]-dist[j])>0.00001) dist[j]=dist[dir]*my_map[dir][j]; } } int main() { int n,m,i,j,x,y; while(scanf("%d",&n)!=EOF) { // memset(my_map,0,sizeof(my_map)); for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%lf",&my_map[i][j]); scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d%d",&x,&y); dij(n,x); if(dist[y]==0) printf("What a pity!\n"); else printf("%.3lf\n",dist[y]); } } return 0; }
相关文章推荐
- hdu 1596(最短路变形)
- (阶段三 dijkstra1.4)HDU 1596 find the safest road(最短路的变形题:求乘积,求最大值)
- HDU 1596 最短路变形
- HDU 1596(find the safest road) 最短路(SPFA&FLOYD&Dijkstra)
- hdu 1596 find the safest road (变形SP && dij+heap)
- 两道最短路裸题(HDU 2544 最短路 / HDU 1596 find the safest road)
- HDU 3873 Invade the Mars dijkstra最短路变形
- HDU 4034 Graph【最短路之floyd变形】
- hdu 1596 find the safest road(最短路求最大值的题目,有两种稍微不同的处理方式)
- HDU 1596 find the safest road 最短路
- HDU 5361 最短路变形
- HDU1224 Free DIY Tour(最短路变形,最长路打印路径,spfa)
- HDOJ 1596 find the safest road(最短路--dijkstra变形)
- HDU 6181 Two Paths(次短路变形)
- HDU 1596 find the safest road(最短路变形)
- HDU-1596 find the safest road(最短路[Dijkstra])
- HDU 1596 find the safest road <SPFA算法的一个变形>
- hdu 3986(最短路变形好题)
- HDU 3790 最短路径问题(dijk最短路变形)
- HDU 4318 图论之最短路变形