zoukankan      html  css  js  c++  java
  • COJ1024(Mining)

    题目链接

    题目大意:给定一个无向图,指定2个起点s1和s2和一个终点t,2个人分别从s1和s2出发,目的地是t,求两人的最短路径的最大公共长度(在保证两人均走最短路的前提下使两人一起走的路径最长)。

    分析:只要两人会合后,就一定会一起走完剩下的全程。所以大体思路是枚举可能的会合点,在判断某个点是否是可能的会合点时,判断这个点是否都是两个人的最短路径上的点即可。求最短路时用到dijkstra。

    View Code
     1 #include <stdio.h>
     2 #include <memory.h>
     3 #define N 1000
     4 #define INF 0x7fffff
     5 #define MIN(a,b)  ((a)<(b)?(a):(b))
     6 int g[N][N],dist1[N],dist2[N],dist3[N],n,m;
     7 char vis[N];
     8 void dijkstra(int u,int dist[])
     9 {
    10   int v,i,k,min;
    11   memset(vis,0,sizeof(vis));
    12   for(i=0;i<n;i++)  dist[i]=(i==u?0:INF);
    13   for(i=0;i<n;i++)
    14   {
    15     min=INF;
    16     for(v=0;v<n;v++)  if(!vis[v]&&dist[v]<=min) min=dist[k=v];
    17     vis[k]=1;
    18     for(v=0;v<n;v++)  dist[v]=MIN(dist[v],dist[k]+g[k][v]);
    19   }
    20 }
    21 int main()
    22 {
    23   int i,j,t,u1,u2,u3,u,v,d,ans;
    24   scanf("%d",&t);
    25   while(t--)
    26   {
    27     scanf("%d%d%d%d%d",&n,&u1,&u2,&u3,&m);
    28     u1--,u2--,u3--;
    29     for(i=0;i<n;i++)
    30     {
    31       for(j=i+1;j<n;j++)  g[i][j]=g[j][i]=INF;
    32     }
    33     for(i=0;i<m;i++)
    34     {
    35       scanf("%d%d%d",&u,&v,&d),u--,v--;
    36       g[u][v]=g[v][u]=d;
    37     }
    38     dijkstra(u1,dist1);
    39     dijkstra(u2,dist2);
    40     dijkstra(u3,dist3);
    41     ans=0;
    42     j=u1;
    43     for(i=0;i<n;i++)
    44     {
    45       if(dist1[i]>=ans&&dist1[u2]==dist1[i]+dist2[i]&&dist1[u3]==dist1[i]+dist3[i]) ans=dist1[j=i];
    46     }
    47     printf("%d %d %d\n",ans,dist2[j],dist3[j]);
    48   }
    49   return 0;
    50 }
  • 相关阅读:
    metal的gpu query
    体积雾 global fog unity 及改进
    hdr rt format对颜色的影响
    unity deferred lighting
    unity linear space时 photoshop blend的正确设置
    unity linear work flow
    一些数据 bandwidth之类
    deferred rendering with msaa
    unity 显示mipmaplevel
    【转】在C#中使用SendMessage
  • 原文地址:https://www.cnblogs.com/algorithms/p/2478190.html
Copyright © 2011-2022 走看看