UVa 593 MBone
题目描述题目模拟了一个多播网络。网络由多个岛屿组成每个岛屿有一个多播路由器和若干主机。路由器之间通过隧道连接每个隧道有一个阈值。主机可以加入或离开多播组也可以发送数据包到某个组。数据包有TTL\texttt{TTL}TTLTime To Live\texttt{Time To Live}Time To Live每经过一个隧道TTL\texttt{TTL}TTL减去该隧道的阈值。当TTL\texttt{TTL}TTL 隧道阈值时数据包不会通过该隧道。主机收到数据包时只保留TTL\texttt{TTL}TTL最大的那个若相同则保留先收到的题目要求只保留TTL\texttt{TTL}TTL最高的。输出每个主机收到的数据包按主机地址升序再按数据包ID\texttt{ID}ID升序。输入格式输入包含多个网络描述。每个网络第一部分描述拓扑第一行整数mmm1≤m≤101 \le m \le 101≤m≤10表示岛屿数。接下来mmm个岛屿描述每行路由器名称和行数ddd接下来ddd行每行以H主机地址或T隧道阈值 目标路由器名开头。第一部分结束后第二行一个整数aaa表示活动数。接下来aaa行每行一个活动J 主机地址 组地址加入、L 主机地址 组地址离开、S 主机地址 组地址 数据包ID TTL发送。输入以m0m 0m0结束。输出格式对于每个网络输出Network #X然后每行输出主机地址 数据包ID TTL按主机地址升序、数据包ID\texttt{ID}ID升序排列。每个网络输出后跟一个空行。样例输入3 Nuremberg 3 T 8 Munich H 3768 H 3669 Munich 6 H 721 H 722 H 723 T 6 Nuremberg H 857 T 9 Ulm Ulm 5 H 51225 H 51226 H 51227 T 15 Nuremberg T 9 Munich 14 J 51227 26 J 3768 27 J 723 26 J 3768 26 S 3768 26 1000 17 J 857 26 S 3768 26 320 16 J 722 26 L 857 26 S 51227 26 1001 37 S 723 26 533 5 L 51227 26 L 3768 27 L 723 26 0输出Network #1 722 533 5 722 1001 28 723 320 8 723 533 5 723 1000 9 723 1001 28 857 320 8 3768 320 16 3768 1000 17 3768 1001 22 51227 1000 0 51227 1001 37题目分析本题的核心是计算路由器之间的最短路径距离为阈值之和然后对于每个数据包计算它能到达哪些主机。算法构建有向图节点为路由器边权为隧道阈值。使用Floyd-Warshall\texttt{Floyd-Warshall}Floyd-Warshall计算所有路由器对之间的最短路径即最小阈值和。对于每个发送事件遍历当前组中的所有主机检查从源主机所在路由器到目标主机所在路由器的距离是否≤\le≤数据包的TTL\texttt{TTL}TTL。若是则主机收到数据包剩余TTL\texttt{TTL}TTL 原始TTL\texttt{TTL}TTL- 距离。同一主机收到同一数据包的多个副本时只保留剩余TTL\texttt{TTL}TTL最大的。使用映射packetReceived[host]存储(packetId, ttl)对并保持最大TTL\texttt{TTL}TTL。复杂度分析路由器数≤10\le 10≤10Floyd-WarshallO(103)O(10^3)O(103)。活动数≤1000\le 1000≤1000每个发送事件遍历组内主机最多505050可接受。代码实现// MBone// UVa ID: 593// Verdict: Accepted// Submission Date: 2017-05-14// UVa Run Time: 0.000s//// 版权所有C2017邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;boolcmp(pairint,inta,pairint,intb){returna.firstb.first;}intmain(){cin.tie(0),cout.tie(0),ios::sync_with_stdio(false);intislands,cases0;while(cinislands,islands){mapstring,intindexer;mapint,inthostInRouter;mapint,setintgroups;mapint,vectorpairint,intpacketReceived;charkinds;introuterId0,datalines,activities;intcost,hostId,groupId,packetId,ttl;string source,dest;intdist[20][20],INF1000000;for(inti0;iislands;i){for(intj0;jislands;j)dist[i][j]INF;dist[i][i]0;}for(intc1;cislands;c){cinsourcedatalines;if(indexer.find(source)indexer.end())indexer[source]routerId;for(intd1;ddatalines;d){cinkinds;if(kindsT){cincostdest;if(indexer.find(dest)indexer.end())indexer[dest]routerId;dist[indexer[source]][indexer[dest]]cost;}else{cinhostId;hostInRouter[hostId]indexer[source];}}}for(intk0;kislands;k)for(inti0;iislands;i)for(intj0;jislands;j){intthroughdist[i][k]dist[k][j];if(dist[i][j]through)dist[i][j]through;}cinactivities;for(intc1;cactivities;c){cinkinds;if(kindsJ){cinhostIdgroupId;groups[groupId].insert(hostId);}elseif(kindsL){cinhostIdgroupId;groups[groupId].erase(hostId);}else{cinhostIdgroupIdpacketIdttl;for(autohost:groups[groupId]){intfromhostInRouter[hostId],tohostInRouter[host];if(ttldist[from][to])packetReceived[host].push_back(make_pair(packetId,ttl-dist[from][to]));}}}coutNetwork #cases\n;for(autopacket:packetReceived){sort(packet.second.begin(),packet.second.end(),cmp);for(autodata:packet.second)coutpacket.first data.first data.second\n;}cout\n;}return0;}

相关新闻

AI科技热点日报 | 2026年6月24日

AI科技热点日报 | 2026年6月24日

文章目录AI科技热点日报 | 2026年6月24日📌 今日摘要一、夏季达沃斯大连启幕:AI成全球对话核心议题事件概要来源 / Sources二、Anthropic发布Claude Tag:企业级AI渗透率首度反超OpenAI事件概要来源 / Sources三、字节跳动定调"勇攀高峰&…

2026/6/25 21:21:37阅读更多 →
Java Web文件上传漏洞剖析:从Servlet原理到企业级安全实战

Java Web文件上传漏洞剖析:从Servlet原理到企业级安全实战

1. 项目概述:一次典型的企业级应用文件上传漏洞剖析最近在梳理一些企业级应用的历史安全问题时,遇到了“飞企互联-FE企业运营管理平台”的一个老漏洞。这个漏洞的核心在于其uploadAttachmentServlet接口存在任意文件上传问题。对于从事安全研究、渗透测试…

2026/6/25 21:21:37阅读更多 →
正则化实战手册:从过拟合诊断到敏感度热力图

正则化实战手册:从过拟合诊断到敏感度热力图

1. 项目概述:正则化不是玄学,是模型工程师的“刹车系统”“How to Master Regularization Without Losing Your Mind”——这个标题一出来,我就笑了。不是笑它夸张,而是太真实了。我带过三届算法实习生,几乎每届都有人…

2026/6/25 21:21:37阅读更多 →
如何高效使用FModel:专业游戏资源解析完整指南

如何高效使用FModel:专业游戏资源解析完整指南

如何高效使用FModel:专业游戏资源解析完整指南 【免费下载链接】FModel Unreal Engine Archives Explorer 项目地址: https://gitcode.com/gh_mirrors/fm/FModel FModel是一款开源的虚幻引擎档案浏览器,专为游戏开发者、MOD制作者和游戏美术爱好者…

2026/6/25 22:27:04阅读更多 →
Python使用Darts预测数据:让时间序列预测像调sklearn一样简单

Python使用Darts预测数据:让时间序列预测像调sklearn一样简单

一、为什么是Darts? 时间序列预测,是数据科学里最古老、也最让人头疼的战场。 你是否经历过这样的绝望:用statsmodels跑一个ARIMA,调参调到怀疑人生;用Prophet换个数据集就得重写一遍代码;好不容易训完一…

2026/6/25 22:27:04阅读更多 →
深入解析 musl libc 中 atexit 的实现机制

深入解析 musl libc 中 atexit 的实现机制

前言在 C 标准库中,atexit 是一个看似简单却暗藏玄机的接口。它允许你注册程序退出时要执行的回调函数。但你有没有想过:这些回调是怎么存的?线程安全怎么保证?如果退出时又注册了新的 handler 会怎样?今天我们就来拆解…

2026/6/25 22:27:04阅读更多 →
如何构建企业级在线考试平台:学之思开源系统的架构深度解析

如何构建企业级在线考试平台:学之思开源系统的架构深度解析

如何构建企业级在线考试平台:学之思开源系统的架构深度解析 【免费下载链接】xzs-mysql 学之思开源考试系统是一款 java vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序,能覆盖到pc机和…

2026/6/25 22:27:04阅读更多 →
NVIDIA算力帝国:硬件、CUDA生态与AI基础设施权力结构解析

NVIDIA算力帝国:硬件、CUDA生态与AI基础设施权力结构解析

1. 项目概述:这不是芯片公司的故事,而是一场算力地缘的静默重构“NVIDIA’s Silicon Empire: The Hidden Forces Shaping AI’s Future”——这个标题乍看像一本科技商业传记的副标题,但如果你在数据中心机房闻过GPU风扇吹出的热风&#xff0…

2026/6/25 22:27:04阅读更多 →
STM32-S09-指纹识别开锁(管理)+密码开锁(可设)+TFT彩屏+舵机+蜂鸣器+矩阵按键+(无线方式选择)-2(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)

STM32-S09-指纹识别开锁(管理)+密码开锁(可设)+TFT彩屏+舵机+蜂鸣器+矩阵按键+(无线方式选择)-2(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)

STM32-S09-指纹识别开锁(管理)密码开锁(可设)TFT彩屏舵机蜂鸣器矩阵按键(无线方式选择)-2(设计源文件万字报告讲解)(支持资料、图片参考_降重降ai) 产品功能描述: 本系统由STM32F103C8T6单片机核心板、1.44寸TFT彩屏、(无线蓝牙/无…

2026/6/25 22:22:03阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

上半年跳槽,面了十几家公司。说句实话,不是能力不行,是面试现场太容易崩了。 明明准备了一周,面试官换个问法脑子就一片白。面完之后那个懊悔——其实我会的。 后来开始试市面上的AI面试辅助工具。前前后后装了5款,踩…

2026/6/25 11:52:11阅读更多 →
Claude Code 提示词设计:从塑造“人格”到建立“状态机”

Claude Code 提示词设计:从塑造“人格”到建立“状态机”

当前 AI Agent 设计的核心痛点在于:大模型不缺写代码的能力,缺的是克制力、边界感和验证逻辑。Prompt 不再是用来塑造“人格”的,而是用来建立“状态机(State Machine)”和“行为门禁(Guardrails&#xff0…

2026/6/25 11:52:11阅读更多 →
MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MONKEYCODE 教程系列 MonkeyCode教程及推广系列 MC-037 自定义 Skill 开发:创建你的AI能力模块 >官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e 系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列 字数: 约 1400 字…

2026/6/25 11:52:11阅读更多 →