当前位置: 首页 > news >正文

loj 1002(spfa变形)

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

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

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

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<queue>
 6 using namespace std;
 7 #define MAXN 555
 8 #define inf 1<<30
 9 #define FILL(a,b) memset(a,b,sizeof(a))
10 
11 struct Edge{
12     int v,w;
13     Edge(int _v,int _w):v(_v),w(_w){}
14 };
15 
16 int n,m,dist[MAXN];
17 bool mark[MAXN];
18 vector<Edge>g[MAXN];
19 
20 void spfa(int vs)
21 {
22     FILL(mark,false);
23     fill(dist,dist+n,inf);
24     queue<int>que;
25     que.push(vs);
26     dist[vs]=0;
27     while(!que.empty()){
28         int u=que.front();
29         que.pop();
30         mark[u]=false;
31         for(int i=0;i<g[u].size();i++){
32             int v=g[u][i].v,w=g[u][i].w;
33             if(max(dist[u],w)<dist[v]){
34                 dist[v]=max(dist[u],w);
35                 if(!mark[v]){
36                     mark[v]=true;
37                     que.push(v);
38                 }
39             }
40         }
41     }
42 }
43 
44 int main()
45 {
46     int _case,u,v,w,vs,t=1;
47     scanf("%d",&_case);
48     while(_case--){
49         scanf("%d%d",&n,&m);
50         for(int i=0;i<n;i++)g[i].clear();
51         while(m--){
52             scanf("%d%d%d",&u,&v,&w);
53             g[u].push_back(Edge(v,w));
54             g[v].push_back(Edge(u,w));
55         }
56         scanf("%d",&vs);
57         spfa(vs);
58         printf("Case %d:\n",t++);
59         for(int i=0;i<n;i++){
60             if(dist[i]==inf)puts("Impossible");
61             else printf("%d\n",dist[i]);
62         }
63     }
64     return 0;
65 }
View Code

 

相关文章:

  • ***检测工具之RKHunter AIDE
  • SCCM2012SP1---安装客户端代理软件
  • spring学习之bean scope
  • Uniscribe相关文章
  • FireEye:数字面包屑——识别APT***来源的7大线索
  • 通过Keepalived实现Redis Failover自动故障切换功能[实践分享] =转载
  • SQL Agent 与 Analysis Server 使用同一个账号
  • getRequestURI在不同tomcat下的不同结果
  • echarts数据自我定制(三)--实时数据传输,带回放功能
  • Java软件开发
  • HTML DIV+CSS小技巧
  • 恰当微分方程判别法
  • Magento使用php shell 命令更新索引(index)
  • 主板典型故障解决方法
  • PHP-深入学习Smarty
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Android开源项目规范总结
  • css系列之关于字体的事
  • gcc介绍及安装
  • JAVA之继承和多态
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL QA
  • nfs客户端进程变D,延伸linux的lock
  • PAT A1120
  • Promise面试题,控制异步流程
  • Tornado学习笔记(1)
  • vue-loader 源码解析系列之 selector
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于游标的分页接口实现
  • 跨域
  • 每天10道Java面试题,跟我走,offer有!
  • 目录与文件属性:编写ls
  • 前嗅ForeSpider中数据浏览界面介绍
  • 问题之ssh中Host key verification failed的解决
  • 一些css基础学习笔记
  • 正则与JS中的正则
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​flutter 代码混淆
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (02)vite环境变量配置
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (9)目标检测_SSD的原理
  • (LeetCode 49)Anagrams
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)VirtualBox安装增强功能