light1002:传送门

【题目大意】

n个点m条边,给一个源点,找出源点到其他点的‘最短路’

定义:找出每条通路中最大的cost,这些最大的cost中找出一个最小的即为‘最短路’,dijkstra变形。dis[i]为s->i的‘最短路’

 #include<bits/stdc++.h>
int mp[][],dis[],vis[];
using namespace std;
int n;
void dij(int s)
{
int i,j,k;
for(i=; i<n; i++)
{
dis[i]=mp[s][i];
vis[i]=;
}
vis[s]=;
for(j=; j<n; j++)
{
int min1=1e9;
for(i=; i<n; i++)
{
if(min1>dis[i]&&!vis[i])
{
min1=dis[i];
k=i;
}
}
vis[k]=;
for(i=; i<n; i++)
{
if(!vis[i]&&mp[k][i]<1e9)
{
dis[i]=min(dis[i],max(dis[k],mp[k][i]));
}
}
}
}
int main()
{
int t,u,v,w,i,j;
cin>>t;
for(int co=; co<=t; co++)
{
int m;
scanf("%d%d",&n,&m);
for(i=; i<n; i++)
for(j=; j<n; j++)
{
if(i==j)
mp[i][j]=;
else
mp[i][j]=1e9;
}
while(m--)
{
scanf("%d%d%d",&u,&v,&w);
if(mp[u][v]>w)
mp[u][v]=mp[v][u]=w;
}
int s;
cin>>s;
dij(s);
printf("Case %d:\n",co);
for(i=; i<n; i++)
{
if(dis[i]==1e9)
puts("Impossible");
else
printf("%d\n",dis[i]);
}
}
return ;
}

最新文章

  1. pl/sql死锁oracle
  2. HackerRank and MiniMax
  3. ASP.NET MVC 中CSS JS压缩合并 功能的使用方法
  4. BZOJ 1729: [Usaco2005 dec]Cow Patterns 牛的模式匹配
  5. [转]百度地图点聚合MarkerClusterer移动地图时,Marker的Label丢失的问题
  6. 自动生成 Lambda查询和排序,从些查询列表so easy
  7. poj 1664 放苹果_整数拆分
  8. Python web框架有哪些
  9. 数据存储与访问之——初见SQLite数据库
  10. c++ 之bind使用
  11. selenium+python-unittest多线程执行用例
  12. 非阻塞tcp服务器与阻塞的tcp服务器对比
  13. 根据设备width(375)动态设置font-size
  14. 【golang-GUI开发】QSS的使用(一)———QSS入门指南
  15. Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常
  16. 取消开机logo,改成代码刷屏
  17. Nginx性能优化
  18. tomcat项目中配置数据库连接池
  19. Android上实现MVP模式的途径
  20. 转:【HTTP】常见错误码说明

热门文章

  1. mysql什么情况下使用索引
  2. 我的Android进阶之旅------>android Button上面的英文字符串自动大写的问题解决
  3. java.lang.instrument: 一个Java对象占用多少字节?
  4. MDK中One ELF Section per Function选项功能探究【转载】
  5. Hadoop家族学习路线图-张丹老师
  6. springmvc ModelAndView
  7. HDU - 6393 Traffic Network in Numazu (LCA+RMQ+树状数组)
  8. CentOS7种搭建FTP服务器
  9. netty5----心跳
  10. 如何选择单片机和Android-LInux-ARM开发板?