思路:有向图。假设在X牧场参加party,从X回家的时候,以X为起点,使用一次Dijkstra算法即可。难点在于去X参加party的最短路如何求解。

   这时候我们可以反向建图,即把原来有向图的方向全部反向,形成一幅新的有向图G',此时再对G'使用一次以X为起点的Dijkstra算法即

      可求得原图G中其他各点以X为终点的最短路径。

 1 #include<iostream>
 2 #include<vector>
 3 #include<string>
 4 #include<cmath>
 5 #include<set>
 6 #include<algorithm>
 7 #include<cstdio>
 8 #include<map>
 9 #include<cstring>
10
11 #define INF 1000000000
12
13 using namespace std;
14
15 int dis1[1010];        // 正向最短路 (回家的最短路)
16 int dis2[1010];        // 反向最短路 (去party的最短路)
17 int vis[1010];
18 int g1[1010][1010];    // 正向建图
19 int g2[1010][1010];    // 反向建图
20 int N, M, X;
21
22 void dijkstra(int start, int dis[], int g[1010][1010])
23 {
24     for(int i = 1; i <= N; ++i)
25     {
26         dis[i] = INF;
27         vis[i] = 0;
28     }
29
30     dis[start] = 0;
31     while(1)
32     {
33         int mark = -1, minDis = INF;
34         for(int i = 1; i <= N; ++i)
35         {
36             if(!vis[i] && dis[i] < minDis)
37             {
38                 minDis = dis[i];
39                 mark = i;
40             }
41         }
42         if(mark == -1)
43             break;
44         vis[mark] = 1;
45         for(int i = 1; i <= N; ++i)
46         {
47             if(!vis[i])
48                 dis[i] = min(dis[i], dis[mark]+g[mark][i]);
49         }
50
51     }
52
53
54
55 }
56
57 int main()
58 {
59     scanf("%d %d %d", &N, &M, &X);
60     for(int i = 1; i <= N; ++i)
61     {
62         for(int j = 1; j <= N; ++j)
63         {
64             if(i == j)
65                 g1[i][j] = g2[i][j] = 0;
66             else
67                 g1[i][j] = g2[i][j] = INF;
68         }
69     }
70     for(int i = 1; i <= M; ++i)
71     {
72         int a, b, cost;
73         scanf("%d %d %d", &a, &b, &cost);
74         g1[a][b] = cost;
75         g2[b][a] = cost;
76     }
77
78     dijkstra(X, dis1, g1);
79     dijkstra(X, dis2, g2);
80
81
82     int ans = -1;
83
84     for(int i = 1; i <= N; ++i)
85     {
86         if(dis1[i] + dis2[i] > ans)
87             ans = dis1[i] + dis2[i];
88     }
89
90     printf("%d\n", ans);
91
92     return 0;
93 }

转载于:https://www.cnblogs.com/FengZeng666/p/11405351.html

Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)相关推荐

  1. D - Silver Cow Party POJ - 3268

    D - Silver Cow Party POJ - 3268 dijkstra 是 O(n2),堆优化一下, O(nlogn) 对每个点跑一次 dj, 取 max(dis(x->i)+dis( ...

  2. Silver Cow Party POJ - 3268(正反建图+dijkstra)

    One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1-N is going to attend the big cow ...

  3. Silver Cow Party POJ - 3268(dijkstra+反向交换)

    题意: 求X到某点来回路程的最短路的最大值. 模板更新中... 题目 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered ...

  4. Silver Cow Party POJ - 3268

    One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big co ...

  5. POJ 3268 迪杰斯特拉图论 置换找最短路

    题目:https://vjudge.net/problem/POJ-3268 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numb ...

  6. Silver Cow Party (POJ - 3268 )

    Silver Cow Party (POJ - 3268 ) 这道题是我做的最短路专题里的一道题,但我还没做这个,结果比赛就出了,真是.......... 题目: One cow from each ...

  7. POJ 3268 Silver Cow Party (最短路径)

    POJ 3268 Silver Cow Party (最短路径) Description One cow from each of N farms (1 ≤ N ≤ 1000) convenientl ...

  8. [POJ](3268)Silver Cow Party ---最短路径(图)

    Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 23762   Accepted: 1085 ...

  9. POJ 3268:Silver Cow Party 求单点的来回最短路径

    Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15989   Accepted: 7303 ...

最新文章

  1. 新功能:阿里云负载均衡SLB支持HTTPS虚拟主机功能(SNI)
  2. JS数组转字符串和字符串转数组
  3. 如何在鼠标hover时改变标注的样式
  4. 博弈论笔记:谈判与讨价还价
  5. .net webconfig 配置说明123
  6. sql trim()函数去掉两头空格
  7. 程序员修神之路--设计一套RPC框架并非易事
  8. 【转】ABP源码分析四十六:ABP ZERO中的Ldap模块
  9. Response响应方法详解
  10. 在windows文件系统中加右键执行程序
  11. python3.8下载request_python3 requests 安装包下载安装[windows]
  12. 金融量化之华泰多因子估值类显著性和IC值计算
  13. iphone开发每日一练【2011-10-04】
  14. 【Small Problem In Work】word 大括号后面的公式对不齐的问题
  15. 你不知道的JavaScript APIs
  16. 华为未来是铺满鲜花还是荆棘遍布?
  17. Segmentation fault (core dumped) 和double free or corruption (out)Aborted (core dumped)
  18. 自动驾驶数据闭环系列之一:理想丰满,现实骨感
  19. 魔力 java下载安装,UBNT EdgeMAX EdgeRouter ERPoE-5 POE+ UAP-AC-PRO开箱及安装调试
  20. 健身耳机哪些品牌好?健身运动耳机推荐

热门文章

  1. 面向对象程序设计 第六次作业
  2. 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)...
  3. jquery radiobutton使用
  4. asp.Net_图片上传的一个类库的源码
  5. unreported exception java.lang.Exception; must be caught or declared to be thrown
  6. wine应用运行后字体都是问号
  7. QuorumPeerMain数量可否和HRegionServer节点数量不一致?
  8. 图表达相关书书籍调研
  9. SVM推导过程及SMO详细求解过程(转载+自己笔记)
  10. Python操作Redis中的hash