POJ 1797 - Heavy Transportation
2017-09-22 15:09
381 查看
题目大意:有t个样例,每个样例要求从1走到n,有m条路,每条路信息包括路的两端点,以及通过这段路的时间。求走到n使得走的各段路的最小值为最大的。
解题思路:dijkstra,修改一下寻找的。dis[i]表示走到i各段路的最小值的最大。初始化为0,先找出距离起点最远的,用最远的进行松弛,松弛操作改变一下就可以了。
ac代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int t, n, m, dis[1005], w[1005][1005], t1, t2, t3, vis[1005], cnt=1;
int main()
{
scanf("%d", &t);
while (t--){
scanf("%d%d", &n, &m);
memset(vis, 0, sizeof(vis));
for (int i=1; i<=n; i++){
dis[i] = 0;
for (int j=1; j<=n; j++)
w[i][j] = 0;
}
for (int i=0; i<m; i++){
scanf("%d%d%d", &t1, &t2, &t3);
w[t1][t2] = w[t2][t1] = t3;
}
for (int i=2; i<=n; i++)
dis[i] = w[i][1];
vis[1] = 1;
for (int i=0; i<n; i++){
t3 = 0;
for (int j=2; j<=n; j++)
if (t3 < dis[j] && !vis[j])
t3 = dis[j], t1 = j;
vis[t1] = 1;
for (int j=1; j<=n; j++)
if (!vis[j])
dis[j] = max(dis[j], min(t3, w[j][t1]));
}
printf("Scenario #%d:\n", cnt++);
printf("%d\n", dis
);
if (t)
printf("\n");
}
return 0;
}
解题思路:dijkstra,修改一下寻找的。dis[i]表示走到i各段路的最小值的最大。初始化为0,先找出距离起点最远的,用最远的进行松弛,松弛操作改变一下就可以了。
ac代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int t, n, m, dis[1005], w[1005][1005], t1, t2, t3, vis[1005], cnt=1;
int main()
{
scanf("%d", &t);
while (t--){
scanf("%d%d", &n, &m);
memset(vis, 0, sizeof(vis));
for (int i=1; i<=n; i++){
dis[i] = 0;
for (int j=1; j<=n; j++)
w[i][j] = 0;
}
for (int i=0; i<m; i++){
scanf("%d%d%d", &t1, &t2, &t3);
w[t1][t2] = w[t2][t1] = t3;
}
for (int i=2; i<=n; i++)
dis[i] = w[i][1];
vis[1] = 1;
for (int i=0; i<n; i++){
t3 = 0;
for (int j=2; j<=n; j++)
if (t3 < dis[j] && !vis[j])
t3 = dis[j], t1 = j;
vis[t1] = 1;
for (int j=1; j<=n; j++)
if (!vis[j])
dis[j] = max(dis[j], min(t3, w[j][t1]));
}
printf("Scenario #%d:\n", cnt++);
printf("%d\n", dis
);
if (t)
printf("\n");
}
return 0;
}
相关文章推荐
- POJ - 1797 Heavy Transportation 单源最短路
- poj 1797(路径限制)
- POJ 1797 Heavy Transportation(最大生成树)
- poj 1797_迪杰斯特拉
- POJ-1797 Heavy Transportation( 最短路 )
- Poj 1797 Heavy Transportation【Dijkstra变形】
- POJ 1797
- 7_4_O题 Heavy Transportation 题解[POJ 1797](Dijkstra变形)
- POJ - 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- poj_1797_Heavy Transportation
- POJ ~ 1797 ~ Heavy Transportation (Dijkstra+最小值最大化)
- POJ 1797 Heavy Transportation
- POJ-1797(最短路的变形)
- POJ 1797 Heavy Transportation(单源最短路径变形)
- 【最短路入门专题1】E - Heavy Transportation Poj 1797【Dijkstra变形题】
- Poj 1797 Heavy Transportation ( 最短路变形
- POJ - 1797 Heavy Transportation(最短路变形)
- poj 1797
- poj 1797 kruskal