设为首页 加入收藏

TOP

POJ 2253-Frogger (Prim)
2015-07-24 06:00:02 来源: 作者: 【 】 浏览:7
Tags:POJ 2253-Frogger Prim

题目链接:Frogger

题意:两只青蛙,A和B,A想到B哪里去,但是A得弹跳有限制,所以不能直接到B,但是有其他的石头作为过渡点,可以通过他们到达B,问A到B的所有路径中,它弹跳最大的跨度的最小值

PS:最小生成树过的,刚开始用Dijstra做,Kao,精度损失的厉害,对于Dijksra的变形不大会变啊,看了Discuss有人用最小生成树过,我一划拉,还真是,敲了,就过了,等会研究研究最短路的各种变形,有模板不会变,不会灵活应用,渣渣就是渣渣。

?

ME Time

1017Kb 0Ms

?

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         const int INF = 1e8; const int N = 205; using namespace std; struct node{ int x,y; }g[N]; int n,vis[N]; double mapp[N][N],dis[N]; double Prim() { int pos; double maxe=0,minn; for(int i=1;i<=n;i++) { dis[i]=mapp[1][i]; vis[i]=0; } vis[1]=1; dis[1]=0; for(int i=1;i<=n;i++) { minn=INF; pos=1; for(int j=1;j<=n;j++) { if(!vis[j]&&dis[j]
        
         maxe) maxe=minn; if(pos==2) //如果当前构树条件是2号哇,那么直接返回,无其他路线了 return maxe; vis[pos]=1; for(int j=1;j<=n;j++) if(!vis[j] &&mapp[pos][j] < dis[j]) { dis[j] = mapp[pos][j]; } } return dis[2]; } void init(int i) { double t; mapp[i][i]=0; for(int j=1;j?

?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++基础学习教程(三) 下一篇BlueJ的code pad

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: