zoukankan      html  css  js  c++  java
  • poj2387 初涉最短路

    前两天自学了一点点最短路..看起来很简单的样子...

    就去kuangbin的专题找了最简单的一道题练手..然后被自己萌萌的三重for循环超时虐的不要不要的~

    松弛虽然会但是用的十分之不熟练...

    代码~

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int tance[1005][1005];
    bool vis[1005];
    int dis[1005];
    int t,n;
    void sc()
    {
        for(int i=1;i<=n;i++)
            vis[i]=true;
        vis[1]=false;
        for(int i=2;i<=n;i++)
        {
            dis[i]=tance[1][i];
        }
        dis[1]=0;
        for(int i=1;i<=n-1;i++)
        {
            int minwhere;
            int min=999999;
            for(int k=2;k<=n;k++)
            {
                if(vis[k]==true&&dis[k]<min)
                {
                    min=dis[k];
                    minwhere=k;
                }
            }
            vis[minwhere]=false;
            for(int k=2;k<=n;k++)
            {
                if(vis[k]==true)
                {
                    if(dis[k]>dis[minwhere]+tance[minwhere][k])
                    {
                        dis[k]=dis[minwhere]+tance[minwhere][k];
                    }
                }
            }
    
        }
        return ;
    }
    int main(){
    while(~scanf("%d%d",&t,&n))
    {
        memset(tance,105,sizeof(tance));
        int a,b,c;
        for(int i=1;i<=t;i++)
        {
            scanf("%d%d%d",&a,&b,&c);
            if(tance[a][b]>c)
            {
                tance[a][b]=tance[b][a]=c;
            }
        }
        sc();
        printf("%d
    ",dis[n]);
    }
    }
    

      

  • 相关阅读:
    go里面redis缓存池
    go语言操作redis
    goredis的操作
    go安装redis扩展
    go协程聊天室
    go里面os包的使用案例
    用php入门网络编程
    使用go里面实现了一个并发的时钟服务器
    案例一:协程创建和使用
    系统工程笔记
  • 原文地址:https://www.cnblogs.com/rayrayrainrain/p/5182014.html
Copyright © 2011-2022 走看看