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

P15895 [TOPC 2025] One-Way Abyss 题解

P15895 [TOPC 2025] One-Way AbyssLink: https://www.luogu.com.cn/problem/P15895题目描述米蒂是一位勇敢的冒险家正在探索一个名为“深渊”的神秘地下洞穴系统。深渊由n nn条垂直的竖井和m mm条水平的隧道组成。每条隧道恰好连接同一深度上的两条竖井。所有m mm条隧道的深度各不相同而且令人惊奇的是每条隧道的正中央都有一份宝藏米蒂可以选择任意一条竖井作为起点。他从所选竖井的顶部开始向下移动并遵循以下规则他只能向下移动不允许向上移动。每当遇到一条水平隧道时他必须立即进入这条隧道并到达与之相连的另一条竖井。一旦进入一条水平隧道就无法原路返回。这些隧道中的宝藏具有不同的价值。米蒂希望尽可能多地收集宝藏。请帮助他计算从某条竖井出发时他最多能收集到的宝藏总价值。输入格式每个测试点包含多个测试用例。第一行包含测试用例的数量t tt接下来是每个测试用例的描述。每个测试用例的第一行包含两个整数n nn和m mm分别表示竖井的数量和水平隧道的数量。接下来的m mm行每行包含三个整数x xx、y yy和v vv表示一条位于某个深度的水平隧道连接编号为x xx和y yy的两条竖井且隧道内包含一份价值为v vv的宝藏。水平隧道按照从上到下的顺序给出这意味着不会有两条水平隧道处于同一深度。输出格式对于每个测试用例输出一个整数表示米蒂能够收集到的最大宝藏总价值。输入输出样例 #1输入 #11 3 3 1 2 3 2 3 4 1 3 9输出 #116输入输出样例 #2输入 #22 5 8 1 4 5 1 3 4 1 3 2 1 3 9 2 4 1 1 3 2 2 3 0 1 5 6 7 2 5 6 16 5 7 4输出 #228 20说明/提示1 ≤ t ≤ 20 1 \le t \le 201≤t≤201 ≤ n ≤ 2 × 10 5 1 \le n \le 2 \times 10^51≤n≤2×1050 ≤ m ≤ 2 × 10 5 0 \le m \le 2 \times 10^50≤m≤2×1051 ≤ x y ≤ n 1 \le x y \le n1≤xy≤n0 ≤ v ≤ 10 9 0 \le v \le 10^90≤v≤109保证所有测试用例的n nn之和不超过2 × 10 5 2 \times 10^52×105。保证所有测试用例的m mm之和不超过2 × 10 5 2 \times 10^52×105。翻译由 DeepSeek V3.2 完成Solution1. 题意一个下落游戏沿着竖线下落遇到横线必须顺着横线移步到另一条竖线并获得这条横线里的价值求到达底部时的最大总价值。2. 分析由于不存在位于相同高度的横线因此横线自上而下依次排列可记为第1 , 2 , ⋯ 1,2,\cdots1,2,⋯层。设f ( i , j ) f(i,j)f(i,j)表示到达第i ii层时处于j jj号矿井时的价值那么根据每行输入的( x , y , v i ) (x,y,v_i)(x,y,vi​)表示的连接关系容易发现可能有下面两种操作从y yy号矿井移步到x xx号矿井获得v i v_ivi​的价值从x xx号矿井移步到y yy号矿井同样是获得v i v_ivi​的价值。如此一来能得到下面两个相互交织的递推方程组{ f ( i , x ) f ( i − 1 , y ) v i f ( i , y ) f ( i − 1 , x ) v i \begin{cases} f(i,x) f(i-1,y) v_i \\ f(i,y) f(i-1,x) v_i \end{cases}{f(i,x)f(i−1,y)vi​f(i,y)f(i−1,x)vi​​最开始累计的价值为零因此初始条件是∀ t ∈ { 1 , 2 , ⋯ , n } , f ( 0 , t ) 0 \forall t \in \{1,2,\cdots, n\}, \quad f(0,t) 0∀t∈{1,2,⋯,n},f(0,t)0由于数据是2 × 10 5 2\times 10^52×105的数据规模因此O ( n 2 ) O(n^2)O(n2)的二维数组存所有的f ( i , j ) f(i,j)f(i,j)在空间复杂度上显然过不去需要考虑滚动优化将空间复杂度打到O ( n ) O(n)O(n)数组里只保留最近的最优即可。因为求最优解时只需要用最近一步迭代的结果继续往后推更早的用不到了。3. 代码usingSystem;classP15895{staticvoidMain(){inttConvert.ToInt32(Console.ReadLine());while(t--0){varnmConsole.ReadLine().Split();intnConvert.ToInt32(nm[0]);intmConvert.ToInt32(nm[1]);long[]fnewlong[n1];longresult0;for(inti0;im;i){varxyvConsole.ReadLine().Split();intxConvert.ToInt32(xyv[0]);intyConvert.ToInt32(xyv[1]);longvConvert.ToInt64(xyv[2]);longtmpxf[x],tmpyf[y];f[x]tmpyv;f[y]tmpxv;}for(inti1;in;i){if(f[i]result)resultf[i];}Console.WriteLine(result);}}}4. 轶事利用 C# 的托管等机制可以免去“多测不清空零分两行泪”以及内存泄漏的苦恼本题的模型其实是起源于东亚的一种梯子游戏 [1]。游戏结果完全仅由横线的排布决定无任何运气成分。换句话说出口和入口的对应关系其实就是一个已经定死的1 ∼ n 1\sim n1∼n的全排列。反映到这道题上选择一个入口后总共拿到多少奖励已经是板上钉钉的事。

相关文章:

P15895 [TOPC 2025] One-Way Abyss 题解

P15895 [TOPC 2025] One-Way Abyss Link: https://www.luogu.com.cn/problem/P15895 题目描述 米蒂是一位勇敢的冒险家,正在探索一个名为“深渊”的神秘地下洞穴系统。深渊由 nnn 条垂直的竖井和 mmm 条水平的隧道组成。每条隧道恰好连接同一深度上的两条竖井。所…...

一文讲清楚规则、Skill、MCP

想象一下,你要开一家餐厅,并招聘了一位AI员工。这三样东西,就是你管理这位新员工的完整装备。1. 规则 —— 餐厅的“企业文化手册”• 这是什么:这是你给AI员工的第一份文件,一本总纲领、总章程。它不教具体怎么做菜&a…...

别再手动下载DLL了!用Windows自带工具SFC/SCANNOW一键修复kernel32.dll错误

别再手动下载DLL了!用Windows自带工具SFC/SCANNOW一键修复kernel32.dll错误当电脑屏幕上突然弹出"无法定位程序输入点kernel32.dll"的红色警告框时,大多数人的第一反应是打开浏览器搜索"如何下载kernel32.dll"。这个看似合理的操作背…...

告别.bash_profile:在macOS Ventura/Sonoma上为Maven配置环境变量的几种新方法(含Zsh教程)

macOS Ventura/Sonoma时代:Maven环境变量配置的现代实践指南如果你最近升级到了macOS Ventura或Sonoma,可能会发现那些教你修改.bash_profile来配置Maven环境变量的教程突然不灵了。这不是你的问题——而是macOS的Shell环境已经悄然进化。作为长期在macO…...

企业官网后台的工程化设计:内容建模、所见即所得与源码自主可控

企业官网后台的工程化设计:内容建模、所见即所得与源码自主可控 “网站做完我们自己能改吗?要不要技术?”——这个业务问题,在工程层面其实是问:这套 CMS 的内容模型、编辑体验、权限和可维护性设计得怎么样。 后台&qu…...

Win10桌面右键新建菜单丢了记事本?别慌,手把手教你用注册表找回来(附权限设置详解)

Win10右键新建菜单丢失记事本?三步精准修复与权限管理指南刚泡好的咖啡还在冒热气,你像往常一样在桌面右键点击"新建",却发现那个最常用的"文本文档"选项凭空消失了。这不是个例——微软官方社区数据显示,每月…...

Bi-LSTM vs CNN-BiLSTM:实战对比哪个模型更适合你的时间序列预测任务?

Bi-LSTM与CNN-BiLSTM实战抉择:时间序列预测的黄金选择法则当面对时间序列预测任务时,选择正确的模型架构往往能决定项目的成败。Bi-LSTM和CNN-BiLSTM作为两种主流的深度学习模型,各自在特定场景下展现出独特优势。本文将带您深入剖析这两种模…...

别再为立体匹配发愁了!手把手教你用Fusiello法搞定双目相机极线校正(附Python代码)

双目视觉实战:Fusiello极线校正算法详解与Python实现在计算机视觉领域,立体匹配是获取三维场景信息的关键步骤。但原始双目图像由于相机位置差异,导致匹配搜索空间复杂,计算效率低下。本文将深入解析Fusiello极线校正算法的数学原…...

避坑指南:在openEuler 22.03上配置vsftpd虚拟用户,解决gdbmtool替代db_load的认证问题

深度解析:在openEuler 22.03上配置vsftpd虚拟用户的最佳实践 最近在openEuler 22.03上配置vsftpd虚拟用户时,我发现了一个让不少从CentOS/RHEL迁移过来的管理员头疼的问题:传统的 db_load 方法在这里行不通了。经过一番探索和踩坑&#xff…...

MacBook新手福音:用Final Cut Pro 10.6.5搞定你的第一门视频课(附保姆级设置与导出指南)

MacBook新手福音:Final Cut Pro 10.6.5视频课制作全流程精解第一次打开Final Cut Pro时,那个布满陌生术语的界面是否让你望而却步?作为Mac用户专属的视频剪辑利器,它其实远比想象中友好。本文将带你用最直接的方式,从零…...

别再让Ubuntu卡成PPT!手把手教你用swapfile把交换空间从1G扩容到64G(附权限修复)

Ubuntu系统Swap空间扩容实战:从1G到64G的完整解决方案当你在Ubuntu上运行内存密集型任务时,是否遇到过系统突然变得异常缓慢,甚至完全卡死的情况?很多拥有大内存(如32GB或更高)的用户可能会惊讶地发现&…...

别再只认ldd了!盘点5种查看Linux程序动态库依赖的方法(含静态/交叉编译场景)

超越ldd:Linux二进制依赖分析的5种专业方法解析在Linux系统管理和开发中,遇到"不是动态可执行文件"的错误提示时,很多工程师的第一反应是困惑——明明是可执行文件,为什么ldd无法识别?这个问题背后隐藏着Lin…...

【程序源代码】答题微信小程序(含源码)

关键字:答题,小程序,OCR, 题目识别,题库,练习,错题集,微信小程序,Vue项目名称:答题微信小程序答题小程序是面向学生群体打造的轻量化在线答题学习平台,基于微…...

交通顶刊TR Part C 2026年6月论文导读(下)

一期刊简介Transportation Research Part C (TR-C): Emerging Technologies 是交通领域顶刊,由 Elsevier 出版,中科院与 JCR 均为 1 区,近年影响因子约8–9.6。该期刊以交通系统为核心,聚焦 AI、大数据、运筹学等新兴技术对交通规…...

AI应用开发岗面经

1、请先做一下自我介绍。2、你的毕设作品,从产品需求设计到后续开发全流程,都是你一个人独立完成的吗?3、你为什么会选择做这个毕设项目?4、你在做这个项目的过程中,遇到的比较大的挑战是什么?5、你为什么会…...

选型必看!国产RT-Thread才是商用量产最优解

做嵌入式项目选型,很多工程师总会纠结:Zephyr、FreeRTOS、uC/OS、RT-Thread到底怎么选?不少测评一味堆砌极限跑分数据,盲目吹捧海外系统的参数优势,却忽略了国内企业最看重的国产化合规、开发效率、落地量产、售后保障…...

Titanic数据集分析避坑指南:新手常犯的3个错误及如何修正

Titanic数据集分析避坑指南:新手常犯的3个错误及如何修正泰坦尼克号数据集是机器学习领域的"Hello World",但看似简单的数据背后藏着无数陷阱。许多初学者在Kaggle等平台提交分析时,常常陷入三个典型误区:用均值粗暴填充…...

VMware升级后Ubuntu 22.04虚拟机网卡‘消失’?别慌,这6个命令帮你一键找回(附排查思路)

VMware升级后Ubuntu 22.04虚拟机网卡异常修复指南当你满怀期待地将VMware Workstation从15版升级到17版,准备体验新功能时,突然发现原本运行良好的Ubuntu 22.04虚拟机无法联网了——ifconfig只显示lo回环接口,网络设置里空空如也。这种"…...

MacBook锁屏别慌!手把手教你用恢复模式+Apple ID重置开机密码(保姆级图文)

MacBook锁屏急救指南:3种安全解锁方案详解刚泡好的咖啡还在冒热气,手指悬在键盘上方却突然僵住——那个每天输入几十次的密码,此刻竟怎么也想不起来了。MacBook屏幕上冰冷的"密码错误"提示像一堵墙,将你与所有工作资料、…...

不止是搜索!Listary隐藏玩法大揭秘:网页传文件、快速启动器、资源管理器增强

Listary进阶指南:解锁Windows效率中枢的隐藏玩法双击Ctrl键调出搜索框——这可能是大多数Listary用户对这个工具的全部认知。但如果你只把它当作一个文件搜索工具,那就像用瑞士军刀只开瓶盖一样暴殄天物。经过三年深度使用和上百次工作流优化&#xff0c…...

别再乱装驱动了!Win10/Win11频繁蓝屏DPC_WATCHDOG_VIOLATION,用WinDBG揪出真凶(保姆级排查流程)

彻底解决Win10/Win11蓝屏噩梦:DPC_WATCHDOG_VIOLATION实战排查指南每次看到那个蓝色屏幕突然出现,心跳都会漏掉一拍——特别是当重要文件还没来得及保存的时候。DPC_WATCHDOG_VIOLATION(错误代码133)堪称Windows系统最令人头疼的蓝…...

别再只会用P值了!用Python的Scipy库实战t检验(附完整代码与结果解读)

用Python玩转t检验:从理论到代码的实战指南当你面对两组数据,想知道它们的均值是否存在显著差异时,t检验是最常用的统计工具之一。但很多数据分析师和机器学习实践者常常陷入"理论懂,代码不会写"的困境。本文将带你用Py…...

安卓高版本APP抓包实战:破解证书校验与NetworkSecurityConfig

1. 为什么高版本安卓APP抓包越来越像“拆弹”——从系统证书机制说起你有没有试过,把BurpSuite配好代理、雷电模拟器9开起来、APP一启动就报“网络连接异常”?或者更魔幻的:APP能打开,但所有接口请求在Burp里压根不出现&#xff0…...

Drupal YAML反序列化RCE漏洞CVE-2017-6920深度解析

1. 这不是“又一个RCE”,而是一次对Drupal架构信任边界的彻底重写2017年3月,Drupal官方发布安全通告,编号CVE-2017-6920,定级为Critical(严重),CVSS评分高达9.8。当时我正在给一家省级政务平台做…...

安卓反调试绕过实战:Frida分层Hook与动态修复指南

1. 为什么“绕过反调试”不是技术炫技,而是逆向分析的生存底线在安卓应用安全分析现场,我见过太多人卡在第一关:刚用adb shell连上设备,frida -U -f com.example.app --no-pause一敲下去,目标App闪退,Logca…...

基于PSO的多目标优化匿名化模型MO-OBAM:平衡隐私保护与数据效用的实战指南

1. 项目概述:当数据共享遇上隐私红线,我们如何破局?在数据驱动的时代,无论是医疗研究中的患者电子病历、金融风控中的信用记录,还是商业分析中的用户行为数据,其共享与分析都蕴含着巨大的价值。然而&#x…...

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数当你在UE5中构建一个拥有复杂行为的AI角色时,数据如何在各个行为模块间高效传递是一个无法回避的核心问题。传统的"黑板"系统虽然广为人知,但在Sta…...

告别美术字烦恼!Unity UGUI自定义图片字体保姆级教程(附完整工具代码)

Unity UGUI自定义图片字体全流程实战指南在游戏UI开发中,标准字体往往无法满足美术设计的个性化需求。当遇到特殊风格的数字、符号或文字时,传统解决方案要么依赖美术逐张制作图片,要么忍受字体版权和风格限制。本文将彻底解决这个痛点——通…...

告别美术字烦恼!Unity UGUI自定义字体工具一键打包全流程(附避坑指南)

告别美术字烦恼!Unity UGUI自定义字体工具一键打包全流程(附避坑指南)在游戏UI开发中,美术字体往往是提升视觉表现力的关键元素。然而,从设计稿到最终在Unity中完美呈现,这条路上布满了各种"坑"&…...

告别打包焦虑:UE5 Windows与安卓打包速度优化与稳定性提升全攻略

告别打包焦虑:UE5 Windows与安卓打包速度优化与稳定性提升全攻略在虚幻引擎5(UE5)开发流程中,打包环节往往是开发者体验的分水岭——顺畅的打包过程能保持创作心流,而频繁的报错和漫长等待则会严重消耗开发热情。本文将…...