<数据结构>XDOJ326.网络延时
问题与解答
问题描述
有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.网络延时的更多相关文章
- CCF CSP 201503-4 网络延时
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-4 网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机 ...
- [ccf 4] 网络延时
网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为 1.他的交换机都连 ...
- TCP协议之网络延时
影响TCP 网络时延的因素硬件速度网络和服务器的负载请求和响应报文的尺寸客户端和服务器之间的距离TCP 协议的技术复杂性TCP协议产生的时延TCP 连接建立握手:TCP 慢启动拥塞控制:数据聚集的 N ...
- CCF真题之网络延时
201503-4 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为1.其他的交换机都连接 ...
- LINUX 数据结构 &算法 网络协议 & 网络编程 多任务编程
http://blog.csdn.net/goodluckwhh/article/category/1303091
- CURL C++网络延时或者最低网速下载设置
1.起因: 下载游戏更新包客户反应更新时间太久,要求我们网速比较低的时候就不要更新 2.解决: 因为之前用的是curl下载,所以在查看了curl.h里面的说明后使用了以下两个option实现了下载时最 ...
- CCF 2015-03-4 网络延时
题目:http://115.28.138.223/view.page?gpid=T24 题意就是让求树上的任意两个节点间的距离的最大值.就是树的直径. 首先树的直径模板转载自http://www.07 ...
- 【CCF】网络延时 树搜索
#include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...
- CCF-CSP题解 201503-4 网络延时
求树的直径. 两遍\(dfs\)就好了. #include <cstdio> #include <cstring> #include <algorithm> #in ...
随机推荐
- PhoneGap打包webApp
因为我只弄了Andriod的环境,所以在此只以Andriod为例. 使用PhoneGap搭建Android开发的项目整体步骤如下: 安装java环境. 安装ant构建工具. 安装android的开发环 ...
- maven的lifecycle
1.maven clean. 清理项目的target目录 2.maven compile 编译项目 3.maven test 编译项目后,再执行Junit测试方法 4.maven package 编译 ...
- Controller返回类的自动识别,WEB-INF,jsp位置
Controller: @Controller@RequestMapping("/params")public class ParamsController { @RequestM ...
- spring mvc访问html页面404报错解决
<servlet> <servlet-name>context</servlet-name> <servlet-class>org.springfram ...
- 【力扣】123. 买卖股票的最佳时机 III
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易. 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的 ...
- 【C/C++】vector 动态二维数组
声明 vector<vector<int> vec; //赋值思路可以从这个很基础的操作里看出来 vector<int> a; a.push_back(1); a.pus ...
- Jenkins构建通知
目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续 ...
- 子组件dispatch导致其他页面刷新问题解决
问题: 现在有一个页面,包含"项目基本要素"和"供应链管控要素"多个组件,其中一个组件有表单级联,通过产品类型的不同选取去调接口获得产品名称的下拉 调接口是通过 ...
- Samba 源码解析之内存管理
由于工作需要想研究下Samba的源码,下载后发现目录结构还是很清晰的.一般大家可能会对source3和source4文件夹比较疑惑.这两个文件夹针对的是Samba主版本号,所以你可以暂时先看一个.这里 ...
- 第46篇-signature_handler与result_handler
在之前介绍为native方法设置解释执行的入口时介绍过,当Method::native_function为空时会调用InterpreterRuntime::prepare_native_call()函 ...