news 2026/2/18 19:27:02

USACO历年白银组真题解析 | 2005年2月

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
USACO历年白银组真题解析 | 2005年2月

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

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

适合人群:

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

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


P1673 Part Acquisition

【题目来源】

洛谷:[P1673 USACO05FEB] Part Acquisition S - 洛谷

【题目描述】

奶牛们接到了寻找一种新型挤奶机的任务,为此它们准备依次经过N ( 1 ≤ N ≤ 5 × 10 4 ) N(1\le N\le 5\times 10^4)N(1N5×104)颗行星,在行星上进行交易。为了方便,奶牛们已经给可能出现的K ( 1 ≤ K ≤ 10 3 ) K(1\le K\le 10^3)K(1K103)种货物进行了由1 11K KK的标号。由于这些行星都不是十分发达。没有流通的货币,所以在每个市场里都只能用固定的一种货物去换取另一种货物。奶牛们带着一种上好的饲料从地球出发,希望在使用的物品的种类数量最少的情况下,最终得到所需要的机器。饲料的标号为1 11,所需要的机器的标号为K KK。如果任务无法完成,输出− 1 -11

【输入】

1 11行是两个数字N NNK KK

2 22N + 1 N+1N+1行,每行是两个数字A i A_iAiB i B_iBi,表示第i ii颗行星为得到A i A_iAi愿意提供B i B_iBi

【输出】

输出最少经手物品数。

【输入样例】

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

【输出样例】

4

【解题思路】

【算法标签】

《洛谷 P1673 Part Acquisition》 #最短路# #USACO# #2005#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;// 定义常量constintN=50005;// 最大节点数constintM=N*2;// 最大边数,无向图需要乘以2intn;// 节点总数intk;// 目标节点inth[N];// 邻接表头数组inte[M];// 边数组,存储边的终点intne[M];// 邻接表next数组intidx;// 边的索引计数器intdist[N];// 距离数组,存储从节点1到各节点的最短距离// 添加边的函数voidadd(inta,intb){e[idx]=b;// 设置边的终点ne[idx]=h[a];// 新边指向原链表的头h[a]=idx++;// 更新链表头,并递增索引}// 广度优先搜索函数,从节点1开始搜索voidbfs(){queue<int>q;// 创建队列用于BFSq.push(1);// 从节点1开始搜索// 初始化距离数组,将所有距离设为无穷大for(inti=1;i<=n;i++){dist[i]=1e9;// 1e9表示无穷大}dist[1]=1;// 节点1到自身的距离为1(这里从1开始计数,不是0)// BFS主循环while(!q.empty()){intt=q.front();// 取出队首节点q.pop();// 弹出队首节点// 遍历节点t的所有邻居for(inti=h[t];i!=-1;i=ne[i]){intj=e[i];// 邻居节点// 如果找到更短的路径if(dist[j]>dist[t]+1){dist[j]=dist[t]+1;// 更新距离q.push(j);// 将邻居节点加入队列}}}}intmain(){// 初始化邻接表头数组memset(h,-1,sizeof(h));// 读入节点数和目标节点cin>>n>>k;// 读入n-1条边(因为树有n-1条边)for(inti=1;i<=n;i++){intu,v;cin>>u>>v;add(u,v);// 添加边u->v// 注意:这里似乎缺少了add(v, u),应该是无向图的输入}// 执行BFS搜索bfs();// 输出结果if(dist[k]==1e9)// 如果目标节点不可达{cout<<-1<<endl;}else// 如果可达{cout<<dist[k]<<endl;}return0;}

【运行结果】

6 5 1 3 3 2 2 3 3 1 2 5 5 4 4
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/17 19:50:06

JDK21-虚拟线程(原理)

一、先给结论 虚拟线程不是不运行在 OS 线程上&#xff0c;而是&#xff1a; 只在“真正需要 CPU 时”才短暂占用 OS 线程。 在 IO 等待时&#xff0c;JVM 会把它“卸载”下来。 二、为什么传统线程一定占用 OS 线程&#xff1f; 1️⃣ Java 线程 OS 线程&#xff08;1:1&am…

作者头像 李华
网站建设 2026/2/17 13:18:59

Navicat Premium MacOS:原生或通过 Rosetta 运行教程

目前&#xff0c;Navicat 系列产品已支持在搭载 Apple Silicon 芯片的 Apple 设备上运行。Navicat Premium 16.3 (或更高版本) 可原生支持 MySQL、Redis、PostgreSQL、MongoDB、SQL Server、MariaDB、SQLite、GaussDB、OceanBase 等数据库的管理开发工作&#xff0c;为 Mac 用户…

作者头像 李华
网站建设 2026/2/17 6:32:37

谷歌Gemini变身免费家教:接入全真模考,错题还能掰碎了讲

从现在起&#xff0c;备考SAT的学生可以免费通过Gemini进行模拟考试&#xff0c;分数立等可取&#xff0c;还能帮你讲解错题。谷歌来给考生送福利了&#xff01;从现在起&#xff0c;备考SAT的学生可以免费通过Gemini进行模拟考试&#xff0c;分数立等可取&#xff0c;还能帮你…

作者头像 李华
网站建设 2026/2/18 4:39:38

曝光马斯克AGI秘密的他,被xAI开除了?

马斯克「Macrohard」&#xff08;巨硬&#xff09;黑幕曝光&#xff01;xAI工程师爆料&#xff1a;AI智能体将8倍速模拟人类&#xff0c;或取代亿万白领岗位。一期播客上线。四天&#xff0c;相关片段在X上冲到460万观看。人火了&#xff0c;但工作却没了。在播客《Relentless》…

作者头像 李华
网站建设 2026/2/17 1:55:53

导师严选2026 AI论文平台TOP9:继续教育写作全攻略

导师严选2026 AI论文平台TOP9&#xff1a;继续教育写作全攻略 2026年AI论文平台测评&#xff1a;为何需要一份精准的推荐榜单 在当前学术研究日益数字化的背景下&#xff0c;AI写作工具已成为高校师生、科研人员提升效率的重要助手。然而&#xff0c;面对市场上琳琅满目的产品&…

作者头像 李华