zoukankan      html  css  js  c++  java
  • poj 2253Frogger

    思路:

    Dijkstra

    代码:

    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    struct infor{
        int x;
        int y;
    };
    int t,n=0;
    infor stone[202];
    double d(int x,int y)
    {
        return sqrt(x*x+y*y);
    }
    double dis[201];
    double map[202][202];
    bool visit[202];
    using namespace std;
    void dijkstra()
    {
        while(true){
            double m=1000000.6;
            int p=0;
            for(int i=0;i<t;i++){
                if(!visit[i]&&dis[i]<m){
                    m=dis[i];
                    p=i;
                }
            }
            visit[p]=1;
            if(p==1)
                break;
            for(int i=0;i<t;i++){
                double n=max(map[p][i],dis[p]);
                dis[i]=min(n,dis[i]);
            }
        }
    }
    
    int main()
    {
        while(cin>>t&&t){
            memset(visit,0,sizeof(visit));
            for(int i=0;i<t;i++){
                cin>>stone[i].x>>stone[i].y;
            }
            for(int i=0;i<t;i++){
                for(int j=0;j<t;j++){
                    map[i][j]=d(stone[i].x-stone[j].x,stone[i].y-stone[j].y);
                }
            }
            for(int i=0;i<t;i++){
                dis[i]=map[0][i];
            }
            visit[0]=1;
            dijkstra();
            n++;
            printf("Scenario #%d
    ",n);
            printf("Frog Distance = %.3f
    ",dis[1]);
            cout<<endl;
        }
        cout<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    Python 学习
    Linux学习
    java 学习
    jvm学习
    [转]根据时间(NSDate)获取具体的信息:月份、星期、天等
    详解http和https的区别
    一些题
    NSNotification的用法 (转自CSDN:ReyZhang的博客)
    关于File's Owner
    UI设计
  • 原文地址:https://www.cnblogs.com/Neptunes/p/3414656.html
Copyright © 2011-2022 走看看