问题与解答

问题描述

有N个网络节点,标记为1到N。

给定一个二维数组times[M][3],表示信号经过有向边的传递时间。times[i][3] = {u, v, w}, 其中u是源节点,v是目标节点,w是一个信号从源节点传递到目标节点的时间,即二维数组中的一行表示一条带权有向边。

现在,我们向当前的节点K 发送一个信号。最少需要多长时间才能使所有节点都收到信号?如果不能使所有节点收到信号,返回-1。

注意:

1、 M的范围在[1,50]之间

2、 N的范围在[1, 20] 之间。

3、 K的范围在[1, N] 之间。

4、 所有的边times[i][3] =(u, v, w)都有1 <= u, v <= N 且 1 <= w <= 50。

问题输入

多行输入数据,第1行为3个正整数,分别是M,N,K。接下来有M行,每行有3个正整数,分别是u, v, w。

**问题输出 **

输出一个数,表示需要多久才能使所有节点都收到信号。如果不能使所有节点收到信号,返回-1

输入样例

3 4 2

2 1 1

2 3 1

3 4 1

输出样例

2

//网络时延
//最短路径问题: Dijstra
#include<stdio.h>
#include<algorithm>
using namespace std;
#define MaxN 100 //最大顶点数
#define INF 10000
int N; //顶点数
int G[MaxN][MaxN]; //邻接矩阵保存图G
int d[MaxN]; //d[u] = num:顶点u到起点的距离为num,初始化为INF
bool Vis[MaxN] = {false}; //Vis[i] == true:顶点i已被访问
int Dijstra(int s); //Dijstra算法,输入起点s int main(){
int M,K,Min_Length;
int i,j;
int u,v,w;
fill(G[0],G[0]+MaxN*MaxN,0); //初始化图G
scanf("%d%d%d",&M,&N,&K); //读入图G的边
for(i = 0; i < M; i++){
scanf("%d%d%d",&u,&v,&w);
G[u-1][v-1] = w;
}
Min_Length = Dijstra(K-1); //调用Dijstra算法
printf("%d", Min_Length); //打印最短路径
} int Dijstra(int s){
fill(d,d+N,INF);
d[s] = 0;
int i,u,v,Min;
for(i = 0; i < N; i++){ //循环N次
u = -1, Min = INF;
for(v = 0; v < N; v++){ //未访问 && 距离起点最近的点
if(Vis[v] == false && d[v] < Min){
u = v;
Min = d[v];
}
}
if(u == -1) return -1; //不连通,返回-1
Vis[u] = true;
for(v = 0; v < N; v++){ //以u为中介点优化u未被访问的邻接点
if(Vis[v] == false && G[u][v] != 0 && d[u]+G[u][v] < d[v])
d[v] = d[u] + G[u][v];
}
} int Min_Length = -1; //返回结果
for(u = 0; u < N; u++){
if(d[u] > Min_Length)
Min_Length = d[u];
}
return Min_Length;
}

题后反思

用fill初始化数组

  • 一维:fill(d,d+N,INF);
  • 二维:fill(G[0], G[0]+MaxN * MaxN, 0);

编号问题

编号从1开始计时,G的顶点编号以及传入Dijstra的起点K的编号都 == 读入编号 - 1

<数据结构>XDOJ326.网络延时的更多相关文章

  1. CCF CSP 201503-4 网络延时

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-4 网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机 ...

  2. [ccf 4] 网络延时

    网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为      1.他的交换机都连 ...

  3. TCP协议之网络延时

    影响TCP 网络时延的因素硬件速度网络和服务器的负载请求和响应报文的尺寸客户端和服务器之间的距离TCP 协议的技术复杂性TCP协议产生的时延TCP 连接建立握手:TCP 慢启动拥塞控制:数据聚集的 N ...

  4. CCF真题之网络延时

    201503-4 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为1.其他的交换机都连接 ...

  5. LINUX 数据结构 &算法 网络协议 & 网络编程 多任务编程

    http://blog.csdn.net/goodluckwhh/article/category/1303091

  6. CURL C++网络延时或者最低网速下载设置

    1.起因: 下载游戏更新包客户反应更新时间太久,要求我们网速比较低的时候就不要更新 2.解决: 因为之前用的是curl下载,所以在查看了curl.h里面的说明后使用了以下两个option实现了下载时最 ...

  7. CCF 2015-03-4 网络延时

    题目:http://115.28.138.223/view.page?gpid=T24 题意就是让求树上的任意两个节点间的距离的最大值.就是树的直径. 首先树的直径模板转载自http://www.07 ...

  8. 【CCF】网络延时 树搜索

    #include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...

  9. CCF-CSP题解 201503-4 网络延时

    求树的直径. 两遍\(dfs\)就好了. #include <cstdio> #include <cstring> #include <algorithm> #in ...

随机推荐

  1. Kafka入门教程(二)

    转自:https://blog.csdn.net/yuan_xw/article/details/79188061 Kafka集群环境安装 相关下载 JDK要求1.8版本以上. JDK安装教程:htt ...

  2. oracle中的数组

    Oracle中的数组分为固定数组和可变数组. 一.固定数组固定数组:在定义的时候预定义了数组的大小,在初始化数组时如果超出这个大小,会提示ORA-06532:超出小标超出限制!语法:        T ...

  3. centos7 docker 修改Nginx文件

    1.docker 安装 nginx : docker安装Nginx还是很简单的,可以参考百度文章 ,或者参照docker安装mysql :https://www.cnblogs.com/jonrain ...

  4. linux环境centos

    qhost:查看集群 投送到集群qsub -l vf=2G,p=1 work.sh -cwd -V all_section_run.sh 杀死任务 qdel  id qstat -u \* |less ...

  5. JVM堆空间结构及常用的jvm内存分析命令和工具

    jdk8之前的运行时数据区域 程序计数器 是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器.每个线程都有一个独立的程序计数器,这类内存区域为"线程私有",此内存 ...

  6. 网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5

    目录 简介 为什么要使用SOCKS SOCKS5 SOCKS5的使用 总结 简介 存在即是合理,SOCKS5的出现是为了解决SOCKS4中不支持身份认证的大问题而出现的,毕竟大家对网络中的安全越来越重 ...

  7. AT1980 [AGC001B] Mysterious Light 题解

    # 题意:高桥 くん 有一个边长为 N 的三枚镜子构成的正三角形 , 顶点为 a, b, c. 他有一个超级步枪 , 放在 AB 段的P点上,使得 AP=X . 并沿着平行于 BC 的方向发射一道光 ...

  8. Linux命令执行过程

    目录 一.命令分类 二.命令执行顺序 三.命令分类及查找基本命令 四.命令执行过程 一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需 ...

  9. 学习整理--flex布局(1)

    父元素容器属性 flex-direction: row(默认).row-reverse.column.column-reverse row: 横向正序排列子元素 colimn: 竖向正序排列子元素 r ...

  10. [BUUCTF]PWN——level4

    level4 附件 步骤: 例行检查,32位程序,开启了NX保护 运行一下程序,看看大概的情况 32位ida载入,首先检索程序里的字符串,根据上一步运行看到的字符串进行跳转 输入点在function里 ...