zoukankan      html  css  js  c++  java
  • POJ 3268 Silver Cow Party

    迪杰斯特拉,算法,题意理解了就好了:N个农场的牛去 K 农场打牌,打完牌再从K农场回到各自的农场,问一来一回过程中走路最长的牛(牛选择最短路走)。然后一个正的最短路,一个反的最短路 就ok了。

    #include<stdio.h>
    #include<string.h>
    #include<cstring>
    #include<string>
    #include<math.h>
    #include<queue>
    #include<algorithm>
    #include<iostream>
    #include<stdlib.h>
    #include<cmath>
    
    #define INF 0x3f3f3f3f
    #define MAX 1005
    
    using namespace std;
    
    int Map[MAX][MAX],vis[MAX],Go[MAX],Back[MAX],k,n,m;
    
    void Godij()
    {
    memset(vis,0,sizeof(vis));
    int i,j,t,minn;
    
    for(i=1; i<=n; i++)
    Go[i]=Map[k][i];
    
    vis[k]=1;
    
    for(i=1; i<n; i++)
    {
    minn=INF;
    for(j=1; j<=n; j++)
    {
    if(Go[j] < minn && !vis[j])
    {
    minn=Go[j];
    t=j;
    }
    }
    
    vis[t]=1;
    
    for(j=1; j<=n; j++)
    {
    if(Go[j] > Go[t]+Map[t][j])
    Go[j]=Go[t]+Map[t][j];
    }
    }
    }
    
    void Backdij()
    {
    memset(vis,0,sizeof(vis));
    int i,j,t,minn;
    
    for(i=1; i<=n; i++)
    Back[i]=Map[i][k];
    
    vis[k]=1;
    
    for(i=1; i<n; i++)
    {
    minn=INF;
    for(j=1; j<=n; j++)
    {
    if(Back[j] < minn && !vis[j])
    {
    minn=Back[j];
    t=j;
    }
    }
    
    vis[t]=1;
    
    for(j=1; j<=n; j++)
    {
    if(Back[j] > Back[t]+Map[j][t])
    Back[j]=Back[t]+Map[j][t];
    }
    }
    }
    
    int main()
    {
    int i,j,u,v,w;
    
    while(scanf("%d%d%d",&n,&m,&k)!=EOF)
    {
    for(i=0; i<MAX; i++)
    for(j=0; j<MAX; j++)
    Map[i][j]=INF;
    
    for(i=1; i<=m; i++)
    {
    scanf("%d%d%d",&u,&v,&w);
    Map[u][v]=min(Map[u][v],w);
    }
    
    Godij();
    Backdij();
    int ans=0;
    
    for(i=1; i<=n; i++)
    {
    if(i!=k)
    {
    ans=max(ans,Go[i]+Back[i]);
    }
    }
    
    printf("%d
    ",ans);
    }
    return 0;
    }
    

      

  • 相关阅读:
    excel 上标和下标
    Excel之tab键
    Excel分数、小数、身份证的录入
    excel快速访问工具栏和自定义选项卡
    excel如何快速实现数据区域的框选
    excel 如何快速实现绝对引用
    INT函数和ROUND
    Excel Vlookup 列查找函数
    excel合并同类项去重求和功能
    VBA 一个很神奇的东西
  • 原文地址:https://www.cnblogs.com/alan-W/p/5664904.html
Copyright © 2011-2022 走看看