zoukankan      html  css  js  c++  java
  • POJ

    题意:一只青蛙想从自己脚下的石头开始调到另一只青蛙的石头上,它可以直接跳,也可以借助别的空石头跳。输入的数据是每个石头的坐标(第一个是这只青蛙踩的石头的坐标,第二个是另一只青蛙踩的石头的坐标)(从一块石头到另一块石头的最大距离)

    思路:虽然是最短路的专题,但是感觉也不算是完全最短路的题,应该更多的运用了生成树的东西

    读题读了半天...理解能力太差..

    完整代码:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #define inf 0x3f3f3f3f
    #define maxn 1100
    using namespace std;
    int n,vis[maxn];
    double g[maxn][maxn],dist[maxn],ans;
    struct node
    {
        int x,y;
    }p[maxn];
    void dijkstra()
    {
        int i,j,index;
        dist[1]=0;
        for(i=1 ;i<= n; i++)
        {
            double Min=inf;
            for(j=1;j<= n;j++)
            {
                if(vis[j]==0&&Min>=dist[j])
                    Min=dist[j],index=j;
            }
            vis[index]=1;
            if(ans< dist[index] &&dist[index]!= inf)
                ans=dist[index];
            if(index==2)
                return ;
            for(j=1 ;j<= n;j++)
            {
                if(vis[j] == 0)
                    dist[j]=min(dist[j],g[index][j]);
            }
        }
    }
    int main()
    {
        int i,j,k,x,y,cnt=1;
        while(scanf("%d",&n),n)
        {
            memset(vis,0, sizeof(vis));
            memset(p,0,sizeof(p));
            for(i=0;i<=n;i++)
                dist[i]=inf;
            k=1;
            for(i=1;i<=n;i++)
            {
                scanf("%d%d",&x,&y);
                for(j=1;j<=k;j++)
                {
                    double d= sqrt((x-p[j].x)*(x-p[j].x)+(y-p[j].y)*(y-p[j].y));
                    g[i][j]=g[j][i]=d;
                }
                p[k].x=x,p[k].y=y,k++;
            }
            for(i=1;i<=n;i++)
                g[i][i]=0;
            ans=0;
            
            dijkstra();
            printf("Scenario #%d
    Frog Distance = %.3f
    
    ",cnt++,ans);
        }
        return 0;
    }
  • 相关阅读:
    防简单攻击iptables策略
    Iptables 防火墙常用配置
    9个常用iptables配置实例
    NFS服务的端口分配
    docker参数--restart=always的作用
    nginx的proxy_pass路径转发规则最后带/问题
    查看tomcat进程启动了多少个线程
    Tomcat 普通用户启动
    SSH远程执行脚本tomcat未启动
    mysql 前缀索引
  • 原文地址:https://www.cnblogs.com/Tianwell/p/11284765.html
Copyright © 2011-2022 走看看