zoukankan      html  css  js  c++  java
  • POJ 2253 (Frogger)

    题目大意:

        青蛙A在一块石头上想通过一系列的跳跃跳到青蛙B的石头上,这里会给出池塘里所有石头的坐标,其中第一个给出的是青蛙A的石头坐标,第二个给出的坐标上衣青蛙B的坐标,这里让你求所有可能的路径中最小的frog distance。 这里的frog distance的定义是一条路径跳跃最大的距离。

    举个例子:17 4 、19 4 、18 5

        这是青蛙A的坐标是17 4,青蛙B 的坐标是 19 4.另一块可以跳跃的石头坐标是18 5.

    所以青蛙A到青蛙B的路径可以有两条17 4—>19 4  这个路径的frog distance(最大的跳跃路径)是 2。 另一条的路径是 17 4—>18 5 —>19 4 的跳跃距离是1.414、       1.414 ,所以青蛙A的最大跳跃路径是1.414 。  所以所有路径的最小 frog distance 是1.414 。 

     解题思路:

        简单的pirm算法。  求不完全的最小生成树青蛙A-青蛙B的最小生成树。  求出最小生成树说明每段的跳跃距离都是最小的,最后输出最小生成树的最大的权值即可!

    今天学到了一个小知识:

    fabs里的数必须是浮点数,abs里的数是整形。可以通过编译器但OJ会编译错误,我是有多水,今天才知道。 还有就是sqrt里面的也是double,如果是整形的话可以在函数里*1.0或者+0.0  都可以。

    代码:

      1 #include <algorithm>
      2 #include <iostream>
      3 #include <sstream>
      4 #include <cstdlib>
      5 #include <cstring>
      6 #include <cstdio>
      7 #include <string>
      8 #include <bitset>
      9 #include <vector>
     10 #include <queue>
     11 #include <stack>
     12 #include <cmath>
     13 #include <list>
     14 //#include <map>
     15 #include <set>
     16 using namespace std;
     17 /***************************************/
     18 #define ll long long
     19 #define int64 __int64
     20 /***************************************/
     21 const int INF = 0x7f7f7f7f;
     22 const double eps = 1e-8;
     23 const double PIE=acos(-1.0);
     24 const int d1x[]= {0,-1,0,1};
     25 const int d1y[]= {-1,0,1,0};
     26 const int d2x[]= {0,-1,0,1};
     27 const int d2y[]= {1,0,-1,0};
     28 const int fx[]= {-1,-1,-1,0,0,1,1,1};
     29 const int fy[]= {-1,0,1,-1,1,-1,0,1};
     30 /***************************************/
     31 void openfile()
     32 {
     33     freopen("data.in","rb",stdin);
     34     freopen("data.out","wb",stdout);
     35 }
     36 /**********************华丽丽的分割线,以上为模板部分*****************/
     37 struct Node
     38 {
     39     double x,y;
     40 }node[520];
     41 int n;
     42 double lowcost[520],map[520][520];
     43 double m;
     44 double minn;
     45 int vis[520];
     46 void prim()
     47 {
     48     int i,j,k;
     49     minn=-1;
     50     for(i=1;i<=n;i++)
     51     {
     52         lowcost[i]=map[1][i];
     53         vis[i]=0;
     54     }
     55     vis[1]=1;
     56     for(i=1;i<=n-1;i++)
     57     {
     58         m=INF;
     59         for(j=1;j<=n;j++)
     60         {
     61             if (lowcost[j]<m&&!vis[j])
     62             {
     63                 k=j;
     64                 m=lowcost[j];
     65             }
     66         }
     67         vis[k]=1;
     68         if (minn<m)
     69            minn=m;
     70         if (k==2)
     71             break;
     72         for(j=1;j<=n;j++)
     73         {
     74             if (lowcost[j]>map[k][j]&&!vis[j])
     75                 lowcost[j]=map[k][j];
     76         }
     77     }
     78     return ;
     79 }
     80 int main()
     81 {
     82     int cas=1;
     83     while(scanf("%d",&n)&&n)
     84     {
     85         int i,j;
     86         for(i=1;i<=n;i++)
     87         {
     88             scanf("%lf%lf",&node[i].x,&node[i].y);
     89         }
     90         for(i=1;i<=n;i++)
     91             for(j=1;j<=n;j++)
     92                 map[i][j]=INF;
     93         for(i=1;i<=n;i++)
     94             for(j=1;j<=n;j++)
     95             {
     96                 map[i][j]=sqrt(fabs(node[j].x-node[i].x)*fabs(node[j].x-node[i].x)+fabs(node[j].y-node[i].y)*fabs(node[j].y-node[i].y))*1.000;
     97             }
     98         prim();
     99         printf("Scenario #%d
    ",cas++);
    100         printf("Frog Distance = %.3f
    
    ",minn);
    101     }
    102     return 0;
    103 }
    View Code
    屌丝终有逆袭日,*******。
  • 相关阅读:
    转:struts2的s:iterator 标签 详解
    转载:jquery 获取和设置 select下拉框的值
    转载:Linux下Tomcat配置
    document、element、node方法
    .NET平台下Web测试工具横向比较
    PhotoShop中让索引图片解锁使用
    改变FileUpLoader 样式 (FileUpLoader js)
    【收藏下】ashx+jQuery,一个轻量级的asp.net ajax解决方案
    TopCoder入门教程
    调用API
  • 原文地址:https://www.cnblogs.com/ZhaoPengkinghold/p/3787579.html
Copyright © 2011-2022 走看看