题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25828

题意:求所有点到给定的目标顶点的路径上的权值的最大值的最小值。

思路:spfa的应用,更新的时候判断max(dist[u],w(u,v))<dist[v]即可。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define MAXN 555
#define inf 1<<30
#define FILL(a,b) memset(a,b,sizeof(a)) struct Edge{
int v,w;
Edge(int _v,int _w):v(_v),w(_w){}
}; int n,m,dist[MAXN];
bool mark[MAXN];
vector<Edge>g[MAXN]; void spfa(int vs)
{
FILL(mark,false);
fill(dist,dist+n,inf);
queue<int>que;
que.push(vs);
dist[vs]=;
while(!que.empty()){
int u=que.front();
que.pop();
mark[u]=false;
for(int i=;i<g[u].size();i++){
int v=g[u][i].v,w=g[u][i].w;
if(max(dist[u],w)<dist[v]){
dist[v]=max(dist[u],w);
if(!mark[v]){
mark[v]=true;
que.push(v);
}
}
}
}
} int main()
{
int _case,u,v,w,vs,t=;
scanf("%d",&_case);
while(_case--){
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)g[i].clear();
while(m--){
scanf("%d%d%d",&u,&v,&w);
g[u].push_back(Edge(v,w));
g[v].push_back(Edge(u,w));
}
scanf("%d",&vs);
spfa(vs);
printf("Case %d:\n",t++);
for(int i=;i<n;i++){
if(dist[i]==inf)puts("Impossible");
else printf("%d\n",dist[i]);
}
}
return ;
}

loj 1002(spfa变形)的更多相关文章

  1. NOIP2009最优贸易[spfa变形|tarjan 缩点 DP]

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  2. UVA 11280 - Flying to Fredericton SPFA变形

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&c ...

  3. loj 1316(spfa预处理+状压dp)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27024 题意:求0-(n-1)的经过最多的标记的点的最短路. 思路 ...

  4. loj 1150(spfa预处理+二分+最大匹配)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26864 思路:首先是spfa预处理出每个'G'到'H'的最短距离, ...

  5. loj 1221(spfa判正环)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25957 思路:由于路线为一个环,将路径上的权值改为c-p*d,那么 ...

  6. loj 1108(spfa判负环)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26823 思路:题目的意思是求出所有的能够到达负环的点.负环很好求, ...

  7. [HDU 1317]XYZZY[SPFA变形][最长路]

    题意: 一个图, 点权代表走到该点可获得的能量值. 可正可负. 一个人从1 号出发,带有100点能量. 问是否有一种方案可使人在能量值>0的时候走到n. 思路: 这个题首先要注意点权. 其实就是 ...

  8. POJ2253 Frogger(spfa变形)

    Description Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Fro ...

  9. bzoj 2662&bzoj 2763 SPFA变形

    我们用dis[i,j]代表到i这个点,用j张票的最短路程,那么我们只需要在SPFA更新 的时候,用dis[i,j]更新dis[p,j]和dis[p,j+1]就行了 /***************** ...

随机推荐

  1. Debian安装python-rrdtool

    ... sudo apt-get install rrdtool sudo apt-get install librrd-dev sudo apt-get install python-dev pip ...

  2. Qt 程序等待多长时间执行

    #include<QElapsedTimer> QElapsedTimer t; t.start(); **; while(t.elapsed()<waitTime) { QCore ...

  3. MST:Bad Cowtractors(POJ 2377)

    坏的牛圈建筑 题目大意:就是现在农夫又要牛修建牛栏了,但是农夫想不给钱,于是牛就想设计一个最大的花费的牛圈给他,牛圈的修理费用主要是用在连接牛圈上 这一题很简单了,就是找最大生成树,把Kruskal算 ...

  4. RegisterDllAndOcx.bat -批量注册当前文件夹中的dll和ocx

    批量注册当前文件夹中的dll和ocx 新建文件:RegisterDllAndOcx.bat   @echo off echo hello,girl~~ for %%i in (*.dll *.ocx) ...

  5. JavaScript高级程序设计学习笔记--函数表达式

    关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之间会读取函数声明,意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它的语句 后面. sayHi(); funct ...

  6. 【C语言】结构体

    不能定义 struct Node { struct Node a; int b; } 这样的结构,因为为了建立Node 需要 建立一个新的Node a, 可为了建立Node a, 还需要再建立Node ...

  7. 【matlab】随意记录

    v = -0.5:0.05:0.5; [x, y] = meshgrid(v); z = sqrt(1.0 - x.^2 - y.^2); mesh(x,y,z); 画一个球的一部分: 2. 求cel ...

  8. quartz+spring 实现多任务动态定时器问题

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  9. ios 上下拉刷新

    UITableView:下拉刷新和上拉加载更多 - cDigger 时间 2013-11-24 02:00:00  博客园精华区 原文  http://www.cnblogs.com/lexingyu ...

  10. 【2016-10-11】Linux系统常用的关机或重启命令shutdown、reboot、halt、poweroff、init 0及init 6的联系与区别

    Linux下常用的关机/重启命令一般包括: shutdown.reboot.halt.poweroff等,当然了我们可以使用init 运行等级runlevel 0即halt来关机,或使用init 运行 ...