POJ-1797 Heavy Transportation
来源:互联网 发布:模拟人生4男性捏脸数据 编辑:程序博客网 时间:2024/05/18 16:37
题目链接:http://acm.hust.edu.cn/vjudge/contest/66569#problem/C
题目大意:给你一个N个点的无向图,让你找一条路径,使得路径上的最小边权最大。
解题思路:d[i]表示从1到i的最小边权 方程为 d[j]=max(d[j],min(d[i],G[i][j])); 用dijkstra维护转移即可。具体见代码。
代码:
#include<iostream>#include<cstdio>#include<cmath>#include<cstdlib>#include<algorithm>#include<cstring>using namespace std;const int maxn=1005;int G[maxn][maxn];int d[maxn];bool vis[maxn];int T,n,m;void dij(){memset(d,-1,sizeof d);memset(vis,0,sizeof vis);d[1]=0;for(int i=1;i<=n;i++){int temp=-1;int k;for(int j=1;j<=n;j++)if(!vis[j]&&temp<d[j]){k=j;temp=d[j];} vis[k]=1;if(k==1)for(int j=1;j<=n;j++) d[j]=G[k][j];else for(int j=1;j<=n;j++)if(!vis[j]&&d[j]<min(d[k],G[k][j])) d[j]=min(d[k],G[k][j]);}}int main(){scanf("%d",&T);for(int k=1;k<=T;k++){scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)G[i][j]=0; for(int i=1;i<=m;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);G[a][b]=G[b][a]=c; }dij();printf("Scenario #%d:\n",k);cout<<d[n]<<endl<<endl;} return 0;}
0 0
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- Poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ-1797-Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- Android 2048的设计(2)
- opencv如何获得keypoint的坐标
- codeforces 699B One Bomb
- 浅谈 CSS 清除浮动的 6 种方法(转)
- RPM包rpmbuild SPEC文件
- POJ-1797 Heavy Transportation
- 从服务器上传和下载文件方法
- SQLI-LAB 的 实战记录(Less 41 - Less 53)
- thinkphp框架命名规范
- 使用 webpack + react + redux + es6 开发组件化前端项目
- [MDX]Fact Table和Dimension Table
- git是什么
- 自定义控件其实很简单3/12
- Zabbix学习笔记(四)---使用微信报警