poj 1797 Heavy Transportation (最短路变形)
2012-03-15 00:26
363 查看
【题目大意】:求城市1到n上的路径的可行路径上的最小值的最大值...(这题目怎么解释得这么绕口啊,其实就是找到一条路径的最小值,使最小值最大)
【解题思路】:这道题是一个dij的变形,改一下判定条件就可以了。之后,我一时间手痒,就决定写个优先队列优化dij并且还配上了邻接表的程序,原本以为权且当练习stl。没想到wa了那么多次。原来是重载运算符自己搞错了。-_-!!!
【代码】:
【解题思路】:这道题是一个dij的变形,改一下判定条件就可以了。之后,我一时间手痒,就决定写个优先队列优化dij并且还配上了邻接表的程序,原本以为权且当练习stl。没想到wa了那么多次。原来是重载运算符自己搞错了。-_-!!!
【代码】:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <cmath> #include <string> #include <cctype> #include <map> #include <iomanip> using namespace std; #define eps 1e-8 #define pi acos(-1.0) #define inf 1<<30 #define pb push_back #define lc(x) (x << 1) #define rc(x) (x << 1 | 1) #define lowbit(x) (x & (-x)) #define ll long long #define maxn 1050 #define maxm 12000000 struct Edge{ int v,next,cost; Edge(){} Edge(int a,int b){v=a,cost=b;} bool operator<(const Edge & x)const{ return cost<x.cost; } }edge[maxm]; int eh[maxn],tot,dist[maxn]; int n,m; int vis[maxn]; void init(){ tot=0; memset(eh,-1,sizeof(eh)); return ; } void addedge(int a,int b,int c){ edge[tot].v=b; edge[tot].next=eh[a]; edge[tot].cost=c; eh[a]=tot++; return ; } void dij(int s){ for (int i=0; i<=n; i++) dist[i]=-1,vis[i]=0; dist[s]=inf; priority_queue <Edge> que; que.push(Edge(s,0)); while (!que.empty()){ Edge q=que.top(); que.pop(); int u=q.v; if (vis[u]) continue; vis[u]=1; for (int j=eh[u]; j!=-1; j=edge[j].next){ int v=edge[j].v; if (!vis[v]){ dist[v]=max(dist[v],min(dist[u],edge[j].cost)); que.push(Edge(v,dist[v])); } } } return ; } int main() { int T,cas=1; int a,b,c; scanf("%d",&T); while (T--){ scanf("%d%d",&n,&m); init(); for (int i=0; i<m; i++){ scanf("%d%d%d",&a,&b,&c); addedge(a,b,c); addedge(b,a,c); } dij(1); printf("Scenario #%d:\n%d\n\n",cas++,dist ); } return 0; }
相关文章推荐
- poj 1797 最短路变形应用
- poj1797 Heavy Transportation(最短路变形)
- POJ 1797 Heavy Transportation&&POJ 2253 Frogger 最短路 dijkstra变形
- poj1797 Heavy Transportation(最短路变形)
- poj 1797 最短路变形dijkstra
- POJ - 1797 Heavy Transportation(最短路变形)
- POJ - 1797(最短路变形or最大生成树)
- poj1797 - Heavy Transportation(最大边,最短路变形spfa)
- POJ 1797 Heavy Transportation (最短路变形)
- poj 1797(最短路变形)
- (POJ 1797)Heavy Transportation 最大生成树|最短路变形 (理解最短路核心思想好题)
- POJ 1797 (最短路变形)
- POJ-1797(最短路的变形)
- POJ 1797 Heavy Transportation 最短路变形
- Poj 1797 Heavy Transportation ( 最短路变形
- POJ 1797 Heavy Transportation【Dijkstra最短路变形】
- Poj 1797 Heavy Transportation (最短路变形)
- POJ 1797 Heavy Transportation Dijstr最短路变形
- poj 1797(最短路变形)
- poj 1797 最短路变形