博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1797 Heavy Transportation(最短路径Dijkdtra)
阅读量:6278 次
发布时间:2019-06-22

本文共 3018 字,大约阅读时间需要 10 分钟。

Heavy Transportation
Time Limit: 3000MS   Memory Limit: 30000K
Total Submissions: 26968   Accepted: 7232

Description

Background
Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand business. But he needs a clever man who tells him whether there really is a way from the place his customer has build his giant steel crane to the place where it is needed on which all streets can carry the weight.
Fortunately he already has a plan of the city with all streets and bridges and all the allowed weights.Unfortunately he has no idea how to find the the maximum weight capacity in order to tell his customer how heavy the crane may become. But you surely know.
Problem
You are given the plan of the city, described by the streets (with weight limits) between the crossings, which are numbered from 1 to n. Your task is to find the maximum weight that can be transported from crossing 1 (Hugo's place) to crossing n (the customer's place). You may assume that there is at least one path. All streets can be travelled in both directions.

Input

The first line contains the number of scenarios (city plans). For each city the number n of street crossings (1 <= n <= 1000) and number m of streets are given on the first line. The following m lines contain triples of integers specifying start and end crossing of the street and the maximum allowed weight, which is positive and not larger than 1000000. There will be at most one street between each pair of crossings.

Output

The output for every scenario begins with a line containing "Scenario #i:", where i is the number of the scenario starting at 1. Then print a single line containing the maximum allowed weight that Hugo can transport to the customer. Terminate the output for the scenario with a blank line.

Sample Input

13 31 2 31 3 42 3 5

Sample Output

Scenario #1:4 题目大意,有n个城m条边,每个边有个最大的通过量,求1城市到n城市的一条最大通路容量是多少 迪杰斯特拉算法的变形,松弛条件改为道路容量为道路上容量最小的边,然后在选容量最大的路 ac代码如下:
1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 long map[1100][1100]; 7 long dp[1100],n; 8 bool v[1100]; 9 void dij(int ii){10 for(int i=1;i<=n;i++){11 dp[i]=map[ii][i];12 }13 dp[ii]=1000000;v[ii]=1;14 int T=n;15 while(T--){16 int k=-1,s;17 for(int i=1;i<=n;i++){//找下一条边18 if(dp[i]>k&&!v[i]){19 k=dp[i];20 s=i;21 }22 }23 v[s]=1;24 if(s==n)return;25 for(int i=1;i<=n;i++){//利用下一条边进行松弛26 if(!v[i]&&dp[i]
>T;35 while(T--){36 cin>>n>>m;37 memset(v,0,sizeof(v));38 memset(dp,0,sizeof(dp));39 memset(map,0,sizeof(map));40 for(int i=1;i<=m;i++){41 cin>>s>>e>>c;42 map[s][e]=map[e][s]=max(map[s][e],c);43 }44 dij(1);45 cout<<"Scenario #"<
<<":"<

提交结果:

转载于:https://www.cnblogs.com/yifan2016/p/5262908.html

你可能感兴趣的文章
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>