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

1376:信使(msner)

【解题思路】
        每个哨所是一个顶点,哨所与哨所之间的通信线路为边,两哨所间通讯花费的时间为边的权值。记第一个哨所为顶点s,信息从第一个哨所传递到表示为顶点x的某哨所可能有多条路径,每条传送路径有一个花费的时间,自然要选择花费时间最少的传送方案,也就是图中从顶点s到顶点x的最短路径。
       从哨所s到哨所x的送信时间就是顶点s到顶点x的最短路径的长度。先求出顶点s到图中其他每个顶点的最短路径。
       要想完成整个送信过程,就要让所有其他哨所都接收到第一个哨所传出的信,完成整个送信过程的时间就是最晚收到信的哨所的收信时间,也就是顶点s到其它所有顶点的最短路径中路径长度最大值。
      该题n最大为100,可以选择使用Floyd算法,Dijkstra算法

【参考代码】

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
int f[102][102];
int n,m;
int main()
{memset(f,INF,sizeof(f));int x,y,z;cin>>n>>m;for(int i=1;i<=n;i++) f[i][i]=0;for(int i=1;i<=m;i++){cin>>x>>y>>z;f[x][y]=f[y][x]=z;}for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if((i!=k)&&(j!=k)&&(i!=j)&&(f[i][k]+f[k][j]<f[i][j]))f[i][j]=f[i][k]+f[k][j];}int s=0;for(int i=1;i<=n;i++) {if(f[1][i]==INF) {cout<<-1;return 0;}if(s<f[1][i]) s=f[1][i];}cout<<s<<endl;return 0;
}

http://www.lryc.cn/news/345421.html

相关文章:

  • Hadoop3:HDFS的架构组成
  • P2910 [USACO08OPEN] Clear And Present Danger S
  • ES6 对象方面的新特性
  • GO语言核心30讲 进阶技术 (第一部分)
  • [力扣题解]225. 用队列实现栈
  • Leetcode—2105. 给植物浇水 II【中等】
  • wordpress外贸建站公司歪建站新版网站上线
  • 关于二手车系统学习--登录模块
  • 若依生成代码的步骤
  • 深度学习论文: LightGlue: Local Feature Matching at Light Speed
  • 全面解析C++11与C++20线程(含内容)
  • 【八股】消息中间件
  • 【17-Ⅰ】Head First Java 学习笔记
  • weblogic 反序列化 [CVE-2017-10271]
  • CoPilot 产品体验:提升 OpenNJet 的控制管理和服务提供能力
  • Leetcode 第396场周赛 问题和解法
  • OC foudation框架(上)学习
  • 【机器学习300问】83、深度学习模型在进行学习时梯度下降算法会面临哪些局部最优问题?
  • 基于springboot的校园管理系统源码数据库
  • 图形网络的自适应扩散 笔记
  • vue基础配置
  • C++基础中的存储类别
  • 【NPM】Nginx Proxy Manager 一键申请 SSL 证书,自动续期,解决阿里云SSL免费证书每3个月失效问题
  • 教你解决PUBG绝地求生游戏中闪退掉线无法重连回去的问题
  • 24 Debian如何配置Apache2(4)LAMP+phpMyAdmin部署
  • centos安装paddlespeech各种报错解决方案
  • 谈基于ATTCK框架的攻击链溯源
  • 在Ubuntu下搭建自己的以太坊私有链
  • 巩固学习4
  • Conda安装rasterio报错