T9的空间

You will never walk alone!

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  69 随笔 :: 0 文章 :: 28 评论 :: 0 Trackbacks
自己写了一个,不过贴一个Waterloo的标程,突然喜欢上这种风格了
#include <stdio.h>
#include 
<math.h>

double z, x[203], y[203], d[202][202];
int i,j,k,n;

main()
{
   
for (i=0;i<202;i++for (j=0;j<202;j++) d[i][j] = 1e99;
   n
=2;
   scanf(
"%lf%lf",&x[0],&y[0]);
   scanf(
"%lf%lf",&x[1],&y[1]);

   
while(1){
      
if (2 != scanf("%lf%lf",&x[n],&y[n])) break;
      n
++;
      
while(1{
         scanf(
"%lf%lf",&x[n],&y[n]);
         
if (x[n] < 0break;
         z 
= hypot(x[n]-x[n-1],y[n]-y[n-1]);
         
if (z < d[n-1][n]) d[n-1][n] = d[n][n-1= z;
         n
++;
      }

   }

   
for (i=0;i<n;i++for (j=0;j<n;j++{
      
if (d[i][j] > 1e98) d[i][j] = 4*hypot(x[i]-x[j], y[i]-y[j]);
   }

   
for (i=0;i<n;i++for (j=0;j<n;j++for (k=0;k<n;k++{
      
if (d[j][i]+d[i][k] < d[j][k]) d[j][k] = d[j][i]+d[i][k];
   }

   printf(
"%0.0lf\n",d[0][1]/40000*60);
}

posted on 2008-10-20 22:25 Torres 阅读(262) 评论(0)  编辑 收藏 引用 所属分类: Graph

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理