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

UVa 336 A Node Too Far

题目描述

为了避免网络消息(数据包)在网络中无限循环的问题,每个消息都包含一个生存时间Time To Live, TTL\texttt{Time To Live, TTL}Time To Live, TTL)字段。该字段包含消息在被丢弃之前可以转发的节点数(站点、计算机等)。每次一个站点接收到消息时,它将TTL\texttt{TTL}TTL字段减111。如果消息的目的地就是当前站点,则忽略TTL\texttt{TTL}TTL字段的值。但如果消息必须转发,且减111后的TTL\texttt{TTL}TTL字段为000,则消息不会被转发。

在本题中,给定多个网络的描述,对于每个网络,需要确定给定初始节点和TTL\texttt{TTL}TTL值时,无法到达的节点数量。

输入格式

输入包含多个网络配置。每个网络描述以整数NCNCNC开头,表示节点之间的连接数。NC=0NC = 0NC=0表示输入数据结束。接下来NCNCNC行,每行包含两个正整数,表示连接两个节点的通信线路。任意一对节点之间最多有一条直接通信线路,每个网络的节点数不超过303030

每个网络配置之后,有多个查询,查询格式为两个整数:起始节点编号和初始TTL\texttt{TTL}TTL设置。查询以一对0 0结束。

输出格式

对于每个查询,输出一行,显示测试用例编号(从111开始)、不可达节点数、起始节点和初始TTL\texttt{TTL}TTL值。

样例输入

16 10 15 15 20 15 55 10 50 55 40 55 60 40 20 40 50 50 60 60 65 20 25 20 30 30 47 35 30 35 40 35 50 35 2 35 3 1 1 1 2 3 2 3 3 0 0 0

样例输出

Case 1: 5 nodes not reachable from node 35 with TTL = 2. Case 2: 1 nodes not reachable from node 35 with TTL = 3. Case 3: 8 nodes not reachable from node 1 with TTL = 1. Case 4: 5 nodes not reachable from node 1 with TTL = 2. Case 5: 3 nodes not reachable from node 3 with TTL = 2. Case 6: 1 nodes not reachable from node 3 with TTL = 3.

题目分析

问题的本质

这是一个图中受限距离可达性问题。给定一个无向图,从起始节点sss出发,消息每经过一条边TTL\texttt{TTL}TTL111。消息可以到达的节点是那些从sss出发的最短路径长度≤TTL\leq \texttt{TTL}TTL的节点。不可达节点包括:

  1. 最短路径长度>TTL> \texttt{TTL}>TTL的节点
  2. 图本身不可达的节点(但题目保证图连通?不保证,需考虑)

实际上,由于每条边消耗111TTL\texttt{TTL}TTL,消息能到达的节点正是那些与sss的距离(最短路径长度)≤TTL\leq \texttt{TTL}TTL的节点。

因此,问题转化为:

  1. 计算所有节点之间的最短路径
  2. 对于每个查询(s,TTL)(s, \texttt{TTL})(s,TTL),统计所有距离>TTL> \texttt{TTL}>TTL的节点数量

节点编号处理

节点编号是正整数,但可能不连续(如样例中的10,15,20,25,30,35,40,47,50,55,60,6510,15,20,25,30,35,40,47,50,55,60,6510,15,20,25,30,35,40,47,50,55,60,65)。需要进行坐标离散化,将节点编号映射到连续的1∼N1 \sim N1N索引,以便使用邻接矩阵。

图的大小

每个网络节点数≤30\leq 3030,使用Floyd-Warshall\texttt{Floyd-Warshall}Floyd-Warshall算法计算全源最短路径非常合适。

参考代码

// A Node Too Far// UVa ID: 336// Verdict: Accepted// Submission Date: 2016-06-26// UVa Run Time: 0.040s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){ios::sync_with_stdio(false);intdistances[40][40];// 距离矩阵,最大 30 个节点,多预留一些空间map<int,int>indexer;// 节点编号 → 索引映射intcases=0;intn;while(cin>>n,n){// 初始化距离矩阵为无穷大for(inti=0;i<40;i++)for(intj=0;j<40;j++)distances[i][j]=100000;indexer.clear();// 读取边并离散化节点编号for(inti=1;i<=n;i++){intstart,end;cin>>start>>end;// 为未出现过的节点分配新索引if(indexer.find(start)==indexer.end())indexer[start]=indexer.size()+1;if(indexer.find(end)==indexer.end())indexer[end]=indexer.size()+1;ints=indexer[start];inte=indexer[end];distances[s][e]=1;distances[e][s]=1;}intN=indexer.size();// 实际节点数// 对角线距离为 0for(inti=1;i<=N;i++)distances[i][i]=0;// Floyd-Warshall 算法计算全源最短路径for(intk=1;k<=N;k++)for(inti=1;i<=N;i++)for(intj=1;j<=N;j++)if(distances[i][k]+distances[k][j]<distances[i][j])distances[i][j]=distances[i][k]+distances[k][j];// 处理查询intnode,ttl;while(cin>>node>>ttl,node||ttl){// 如果起始节点不在图中,则所有节点都不可达// 但题目保证起始节点一定存在于网络中ints=indexer[node];intcounter=0;for(inti=1;i<=N;i++)if(distances[s][i]>ttl)counter++;cout<<"Case "<<++cases<<": ";cout<<counter<<" nodes not reachable from node ";cout<<node<<" with TTL = "<<ttl<<"."<<endl;}}return0;}
http://www.gsyq.cn/news/1430544.html

相关文章:

  • 别再死记硬背了!用‘找书’和‘找章节’的比喻,5分钟搞懂Linux虚拟内存的一二级页表
  • 无GUI环境下Arm开发工具链评估许可证获取与激活指南
  • OpenCore Legacy Patcher完整教程:3步让旧Mac重获新生的终极指南
  • 从游戏引擎到无人机:四元数解算欧拉角,为什么大家都用它而不用矩阵?
  • 2026亚洲EMBA QS排名榜单解析:顶尖项目实力与择校指南 - 品牌2026推荐
  • 【AI知识管理未来5大颠覆性趋势】:20年资深架构师独家预测,错过将淘汰下一代知识工作者
  • 晋中家庭教育指导师报名入口与流程:推荐官方授权机构中山优才教育 - 实时教育培训动态
  • 校园失物招领系统原型设计——让每一件失物都能找到回家的路
  • ArcGIS Pro新手避坑指南:从Excel到shp,搞定坐标系和字段映射的3个关键点
  • Multisim 13.0 高频电路仿真:手把手教你搭建晶体管集电极调幅电路(含频谱分析)
  • 仓储数字孪生选型避坑指南:五大要素必看
  • 避坑指南:WebRTC流媒体服务Docker化部署,从局域网测试到公网可访问的完整配置流程
  • 184、运动控制中的行业应用:SCARA机器人
  • PCIe/USB3.0弹性缓冲器深度计算实战:从协议规范到Verilog实现避坑指南
  • 8086 FLAGS标志位详解
  • SAP变式权限管理避坑指南:从DB278错误看如何设计安全的变式交接流程
  • 别再只看FLOPs了!用MobileOne实测告诉你,移动端模型优化的真正瓶颈是什么
  • Keil Monitor串口中断冲突解决方案
  • Hugo基本用法(转)
  • Steam游戏自动破解终极指南:从源码编译到实战应用的完整教程
  • 植物健康系统毕业设计源码
  • 零知识证明集成失败率高达67%?Lovable 2.3.0 ZK-Rollup适配手册(含BLS签名加速实测数据)
  • 语音芯片厂家一览
  • 2020流程挖掘趋势:从RPA导航到数字孪生,AI驱动流程发现与实时监控
  • 个人品牌战略转型:公司、奖学金、研讨会三位一体同步启动的实践指南
  • 昌吉白蚁消杀防治优选金盾虫控 青蚁卫士:深耕 15 年本土知名品牌,专业虫害防控本地靠谱推荐 - 卓一科技
  • OpenRCT2 v0.5.1“沼泽城堡”版本发布,多项特性更新且将停对Win7/8官方支持!
  • SuperAGI与LlamaIndex集成:构建异构数据智能分析系统
  • Playwright连接浏览器踩坑实录:解决端口占用、配置文件污染与连接超时
  • 从数据洞察到模型调优:用Seaborn和Sklearn完整走一遍房价预测项目