USACO历年白银组真题解析 | 2024年1月Potion Farming

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总贴:USACO历年白银组真题解析 | 汇总-CSDN博客


【题目来源】

洛谷:[P10135 USACO24JAN] Potion Farming S - 洛谷

【题目描述】

你正在玩你最喜欢的手机游戏。在尝试收集药水,以便有机会击败传说中的牛头怪boss。游戏地图是一系列标有1…N的房间,这些房间由N-1条边连接形成一棵树( 2 ≤ N ≤ 10 5 ) (2\le N\le 10^5)(2N105)

你可以通过进行一系列的“遍历”来探索地图。一次遍历是从房间1到树中任何其他房间的一条简单路径。一次遍历结束后,你可以从房间1开始另一次遍历。一旦地图的每个房间至少被遍历过一次,地图就算完成。你的主要目标是用最少的遍历次数完成地图。 你的次要目标是尽可能多地收集药水。在一次遍历开始前,一瓶药水会在地图上的某个房间生成。通过在当前遍历中生成药水的房间你就可以捡起它。如果你没有捡起药水,那么它将在当前遍历结束后消失,所以你不能在未来的遍历中捡起它。 作为一个聪明的程序员,在查看游戏文件后,你能够在接下来的N次遍历之前找出药水将出现在哪里。如果你在最少的遍历次数内完成地图,你可以从地图上收集到的最大数量的药水是多少?

【输入】

输入的第一行包含一个整数N,表示地图中房间的数量。 然后是N个空格分隔的整数p 1 p 2 … p N p_1p_2\dots p_Np1p2pN,其中1 ≤ p i ≤ N 1\le p_i\le N1piNp i p_ipi表示在第i次遍历之前药水会出现在哪个房间。

最后,接着是N-1行,每行有两个用空格分隔的整数*a b ( 1 ≤ a , b ≤ N ) a b(1\le a,b\le N)ab(1a,bN)*,代表房间a和b之间的一条边。可以保证这些边组成了一棵树。

【输出】

输出一行包含一个整数,即你可以在最少遍历次数的情况下从地图中获得的最大药水量。

【输入样例】

5 5 4 3 2 1 1 2 1 3 3 4 3 5

【输出样例】

2

【算法标签】

《洛谷 P10135 Potion Farming》 #USACO# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=100005;intn,p[N],leaf[N],d[N];// leaf[x] -- 以 x 为根的子树中的叶子节点数量// d[x] -- 以 x 为根的子树最多能获得的药水数量vector<int>e[N];// 邻接表存储树// 深度优先搜索计算每个子树的叶子节点数量voiddfs(intx,intfa){// 如果 x 不是根节点且是叶子节点(度为1),则 leaf[x] = 1if(x!=1&&e[x].size()==1){leaf[x]=1;}// 遍历所有子节点for(inti=0;i<e[x].size();i++){inty=e[x][i];if(y==fa)continue;// 避免回溯父节点dfs(y,x);leaf[x]+=leaf[y];// 累加子树的叶子数量}}// 计算每个子树最多能获得的药水数量voidcalc(intx,intfa){// 遍历所有子节点for(inti=0;i<e[x].size();i++){inty=e[x][i];if(y==fa)continue;// 避免回溯父节点calc(y,x);d[x]+=d[y];// 累加子树的药水数量}d[x]=min(d[x],leaf[x]);// 药水数量不超过叶子数量}intmain(){scanf("%d",&n);// 输入节点数量// 输入每个节点的优先级 p[i]for(inti=1;i<=n;i++){scanf("%d",&p[i]);}// 构建树的邻接表for(inti=1;i<n;i++){inta,b;scanf("%d%d",&a,&b);e[a].push_back(b);e[b].push_back(a);}dfs(1,0);// 从根节点开始计算叶子数量// 根据优先级分配初始药水(前 leaf[1] 个优先级最高的节点获得 1 药水)for(inti=1;i<=leaf[1];i++){d[p[i]]++;}calc(1,0);// 从根节点开始计算最大药水数量printf("%d\n",d[1]);// 输出根节点能获得的最大药水数量return0;}

【运行结果】

5 5 4 3 2 1 1 2 1 3 3 4 3 5 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1131395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

https://blog.csdn.net/Tiam_cr/article/details/156733300?sharetype=blogdetailsharerId=156733300shar

vhttps://blog.csdn.net/Tiam_cr/article/details/156733300?sharetypeblogdetail&sharerId156733300&sharereferPC&sharesourceTiam_cr&sharefrommp_from_link加粗样式

【图像隐写】基于小波变换算法的隐写术的信息安全附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…

【电脑玩机小技巧】-Windows电脑多开微信完整教程

Windows电脑多开微信完整教程 #mermaid-svg-VvEPT9ERMFFrFQKs{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-s…

联想Legion Pro可卷曲概念机展现移动大屏游戏新体验

如果你曾在笔记本电脑上玩过视频游戏&#xff0c;我相信你一定希望拥有更大的显示屏。我当然也有同感&#xff1a;16英寸的屏幕空间有时会让我在游戏中难以发现敌人。好消息是&#xff0c;联想在2026年CES展会上发布了一款全新的游戏笔记本概念产品&#xff0c;可能正好解决我们…

深度学习毕设项目:基于深度学习算法python训练数字识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

MySQL 数据库连接池爆满问题排查与解决

目录 MySQL 数据库连接池爆满问题排查与解决 一、问题影响 二、问题确认 三、收集信息 四、SQL 语句分析 五、应用层代码分析 六、连接池配置检查 七、监控工具使用 八、案例分析 在实际的应用开发中&#xff0c;我们可能会遇到 MySQL 数据库连接池爆满的情况。这种情…

【计算机毕业设计案例】基于python训练数字识别基于深度学习算法训练数字识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

印度和新加坡在智能体AI采用方面超越全球同行

亚洲市场的组织在人工智能货币化方面比西方同行行动更快&#xff0c;印度和新加坡在从成本削减向收入增长的全球转型中处于领先地位。技术咨询公司Thoughtworks的最新研究显示&#xff0c;"效率时代"实际上已经结束。这项研究调查了全球3500名IT决策者和高管&#xf…

救命神器!研究生必用9款AI论文软件深度测评TOP9

救命神器&#xff01;研究生必用9款AI论文软件深度测评TOP9 学术写作工具的实用价值与评测标准 在当前科研环境日益激烈的背景下&#xff0c;研究生群体面临着论文撰写、文献整理、数据处理等多重压力。如何高效完成学术任务&#xff0c;已成为影响研究效率的关键因素。随着AI技…

深度学习计算机毕设之基于深度学习算法训练数字识别基于python训练数字识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

自考必备!10个高效降AI率工具推荐

自考必备&#xff01;10个高效降AI率工具推荐 AI降重工具&#xff0c;助你轻松应对论文挑战 随着人工智能技术的广泛应用&#xff0c;越来越多的学生在撰写论文时会使用AI辅助工具。然而&#xff0c;这些工具生成的内容往往带有明显的AI痕迹&#xff0c;容易被查重系统识别&…

导师推荐8个AI论文工具,助你轻松搞定研究生论文写作!

导师推荐8个AI论文工具&#xff0c;助你轻松搞定研究生论文写作&#xff01; 论文写作的“隐形助手”&#xff1a;AI 工具如何改变你的研究之路 在研究生阶段&#xff0c;论文写作不仅是学术能力的体现&#xff0c;更是一场与时间、压力和复杂逻辑的较量。随着人工智能技术的发…

华硕新品:更小巧的ProArt GoPro笔记本和升级版Zenbook Duo

GoPro创作者通常都在路上——这就是它名字的含义——所以这些创作者想要一台紧凑耐用的笔记本电脑来陪伴他们的冒险是很有意义的。为此&#xff0c;华硕打造了ProArt GoPro Edition&#xff08;PX13&#xff09;笔记本电脑&#xff0c;这是一款二合一可转换设备&#xff0c;以1…

【毕业设计】基于python深度学习算法训练数字识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

论文写作隐藏技巧:7款AI神器5分钟生成3万字+真实参考文献揭秘

开头&#xff1a;90%的学生不知道的论文“黑科技”&#xff0c;导师私藏的学术加速密码 你是否经历过&#xff1a; 对着空白文档熬到凌晨3点&#xff0c;初稿还停留在“研究背景”&#xff1f;导师的修改意见像“天书”&#xff0c;改了3遍还是被打回&#xff1f;查重报告飘红…

学霸同款2026 AI论文工具TOP9:专科生毕业论文全攻略

学霸同款2026 AI论文工具TOP9&#xff1a;专科生毕业论文全攻略 2026年专科生论文写作工具测评&#xff1a;如何选出最适合你的“学霸同款” 对于专科生而言&#xff0c;毕业论文不仅是学业的重要一环&#xff0c;更是展示学习成果的关键时刻。然而&#xff0c;面对复杂的格式要…

基于LSTM神经网络的风电功率预测研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

HDFS vs. 传统文件系统:大数据时代存储方案的终极对比

HDFS vs. 传统文件系统&#xff1a;大数据时代存储方案的终极对比 引言&#xff1a;大数据时代的存储危机 2010年&#xff0c;Facebook的日志数据量达到100TB/天&#xff1b;2020年&#xff0c;字节跳动的短视频存储量突破1EB&#xff1b;2023年&#xff0c;GPT-4的训练数据量超…

10347_基于Springboot的新疆旅游管理系统

1、项目包含项目源码、项目文档、数据库脚本、软件工具等资料&#xff1b;带你从零开始部署运行本套系统。2、项目介绍随着社会经济水平不断地提高&#xff0c;人们的生活条件也越来越好&#xff0c;除了注重日常的吃穿用度之外&#xff0c;越来越多的人开始去到别的城市旅游&a…

基于大数据的国内篮球联赛数据分析与可视化系统的设计与实现

国内篮球联赛数据分析与可视化的研究背景 近年来&#xff0c;国内篮球联赛&#xff08;如CBA&#xff09;的竞技水平和商业价值显著提升&#xff0c;赛事数据量呈现爆炸式增长。传统的统计方法已难以应对海量数据的处理需求&#xff0c;而大数据技术的引入为篮球数据分析提供了…