poj1797 dijkstra
来源:互联网 发布:怎么看我的淘宝等级 编辑:程序博客网 时间:2024/06/07 00:53
如题:http://poj.org/problem?id=1797
题目给出一个没有负权的图,权代表承重亮,要求从起点到终点装的货物的最大值。
将dijsktra的松弛操作略微更改dis[j]=MAX(dis[j],MIN(dis[k],a[k][j]));dij[j]是起点到j点可以载货的最大值,在dis[k]和a[k][j]中取一个最小值,然后再在它和dis[j]中取最大。
#include<iostream>
using namespace std;
#define MAXN 1005
int a[MAXN][MAXN];
int dis[MAXN];
bool vis[MAXN];
int MAX(int a,int b)
{return a>b?a:b;}
int MIN(int a,int b)
{return a>b?b:a;}
void dij(int v,int n)
{
memset(vis,false,sizeof(vis));
int i,j;
for(i=1;i<=n;i++)
dis[i]=a[v][i];
vis[v]=true;
for(i=1;i<n;i++)
{
int temp=-1,k=v;
for(j=1;j<=n;j++)
{
if(vis[j]) continue;
if(temp<dis[j])
{
temp=dis[j];
k=j;
}
}
vis[k]=true;
for(j=1;j<=n;j++)
{
if(vis[j]) continue;
dis[j]=MAX(dis[j],MIN(dis[k],a[k][j]));
}
}
}
int main()
{
int N;
cin>>N;
int count=0;
while(N--)
{
count++;
memset(a,-1,sizeof(a));
int n,m;
scanf("%d %d",&n,&m);
int i;
for(i=1;i<=m;i++)
{
int t1,t2,w;
scanf("%d %d %d",&t1,&t2,&w);
a[t1][t2]=w;
a[t2][t1]=w;
}
dij(1,n);
printf("Scenario #%d:\n%d\n",count,dis[n]);
printf("\n");
}
}
- dijkstra--poj1797
- 【dijkstra】poj1797
- poj1797 dijkstra
- poj1797 dijkstra变形
- poj1797--Dijkstra变化
- POJ1797 Heavy Transportation 【Dijkstra】
- POJ1797 -- Dijkstra算法
- 【POJ1797】Heavy Transportation【dijkstra优化】
- poj1797 Heavy Transportation dijkstra变形
- POJ1797 Heavy Transportation(Dijkstra改写)
- POJ1797 Heavy Transportation(dijkstra变形,spfa)
- 图论最短路dijkstra----poj1797模板题
- poj1797
- poj1797
- poj1797
- poj1797
- poj1797
- poj1797
- MSSQL里,替代cursor的一种方法。
- 如何解决php 生成验证码图片不显示问题
- aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file
- What skills are needed for machine learning jobs?
- JavaScript实现如期输入控件
- poj1797 dijkstra
- fork函数详解
- -[UIView presentScene:]: unrecognized selector sent to instance
- iptables详解
- LTE能力
- timestamp和date及datetime的区别
- Hadoop RPC通信Server端的流程分析
- oracle 数据类型详解---日期型
- 数据结构之栈