news 2026/1/19 6:42:07

USACO历年黄金组真题解析 | 2020年2月Timeline

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
USACO历年黄金组真题解析 | 2020年2月Timeline

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

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

适合人群:

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

附上汇总贴:USACO历年黄金组真题解析 | 汇总


【题目来源】

洛谷:[P6145 USACO20FEB] Timeline G - 洛谷

【题目描述】

Bessie 在过去的M MM天内参加了N NN次挤奶。但她已经忘了她每次挤奶是在哪个时候了。

对于第i ii次挤奶,Bessie 记得它不早于第S i S_iSi天进行。另外,她还有C CC条记忆,每条记忆形如一个三元组( a , b , x ) (a,b,x)(a,b,x),含义是第b bb次挤奶在第a aa次挤奶结束至少x xx天后进行。

现在请你帮 Bessie 算出在满足所有条件的前提下,每次挤奶的最早日期。

保证 Bessie 的记忆没有错误,这意味着一定存在一种合法的方案,使得:

  • i ii次挤奶不早于第S i S_iSi天进行,且不晚于第M MM天进行;
  • 所有的记忆都得到满足;

【输入】

第一行三个整数N , M , C N,M,CN,M,C。保证1 ≤ N , C ≤ 10 5 1 \leq N,C \leq 10^51N,C1052 ≤ M ≤ 10 9 2 \leq M \leq 10^92M109

接下来一行包含N NN个整数S 1 , S 2 , … , S n S_1, S_2 , \ldots, S_nS1,S2,,Sn,保证∀ 1 ≤ i ≤ n \forall 1 \leq i \leq n∀1in,都满足1 ≤ S i ≤ M 1 \leq S_i \leq M1SiM

下面C CC行每行三个整数a , b , x a,b,xa,b,x,描述一条记忆。保证a ≠ b a \neq ba=b,且1 ≤ x ≤ M 1 \leq x \leq M1xM

【输出】

输出N NN行,每行一个整数,第i ii行的数表示第i ii次挤奶的最早日期。

【输入样例】

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

【输出样例】

1 6 3 8

【算法标签】

《洛谷 P6145 Timeline》 #图论# #拓扑排序# #差分约束# #USACO# #2020#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=100005,M=N*2;// 最大顶点数和边数intn,m,c;// n: 顶点数, m: 未使用, c: 有向边数量ints[N];// 每个顶点的权值inth[N],e[M],w[M],ne[M],idx;// 链式前向星存储图intcnt[N],dist[N];// cnt未使用, dist: 最长距离数组boolst[N];// 标记顶点是否在队列中/** * 添加有向边 * @param a 起点 * @param b 终点 * @param c 权重 */voidadd(inta,intb,intc){e[idx]=b;// 边指向的顶点w[idx]=c;// 边的权重ne[idx]=h[a];// 指向原链表头h[a]=idx++;// 更新头指针}/** * SPFA算法求最长路径 * 从超级源点0开始,计算到所有顶点的最长路径 */voidspfa(){// 初始化距离为负无穷memset(dist,-0x3f,sizeof(dist));queue<int>q;// SPFA队列q.push(0);// 超级源点入队st[0]=true;// 标记在队列中dist[0]=0;// 起点距离为0while(!q.empty()){intt=q.front();// 取出队首q.pop();st[t]=false;// 标记不在队列中// 遍历t的所有邻接边for(inti=h[t];i!=-1;i=ne[i]){intj=e[i];// 邻接顶点// 松弛操作:求最长路径if(dist[j]<dist[t]+w[i]){dist[j]=dist[t]+w[i];// 更新最长距离// 如果j不在队列中,入队if(!st[j]){q.push(j);st[j]=true;}}}}}intmain(){// 输入顶点数,m未使用,有向边数量ccin>>n>>m>>c;// 初始化邻接表memset(h,-1,sizeof(h));// 输入每个顶点的权值s[i]for(inti=1;i<=n;i++){cin>>s[i];// 添加超级源点到每个顶点的边// 权重为s[i],表示从0出发可以直接获得s[i]的权值add(0,i,s[i]);}// 输入c条有向边for(inti=1;i<=c;i++){inta,b,x;cin>>a>>b>>x;add(a,b,x);// 添加有向边a→b,权重x}// 执行SPFA算法求最长路径spfa();// 输出从超级源点到每个顶点的最长路径长度for(inti=1;i<=n;i++){cout<<dist[i]<<endl;}return0;}

【运行结果】

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

PyFlink FAQ 高频踩坑速查版

1&#xff09;如何准备 Python 虚拟环境&#xff08;venv.zip&#xff09; 场景 你本地跑 PyFlink 没问题&#xff0c;但一提交到远程集群就报&#xff1a; ModuleNotFoundErrorPython 版本不对pandas/pyarrow/apache-beam 版本不匹配 根因几乎都是&#xff1a;集群机器上 Pyth…

作者头像 李华
网站建设 2026/1/11 22:02:02

springboot家装项目管理系统-装修公司流程管理系统

目录摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作摘要 SpringBoot家装项目管理系统是为装修公司设计的流程管理解决方案&#xff0c;旨在优化项目管理效率、降低沟通成本并提升服务质量。系统基于S…

作者头像 李华
网站建设 2026/1/11 22:01:54

SSM 的追星周边转卖交易平台设计

目录设计背景与意义系统架构与功能技术创新点安全与性能优化应用价值项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作设计背景与意义 随着粉丝经济的快速发展&#xff0c;追星周边市场日益庞大&#xff0c…

作者头像 李华
网站建设 2026/1/16 0:51:38

论文初稿写得太慢?10款AI神器帮你降重+快速生成,轻松提高效率

论文生成慢半拍&#xff1f;十大AI工具&#xff0c;AIGC降重快速出初稿 &#xfffd;&#xfffd; AI工具性能速览表 工具名称 核心功能 处理时间 AI生成率控制 适配检测平台 askpaper 降AIGC率降重同步 20分钟 个位数 知网/格子达/维普 秒篇 AI痕迹深度弱化 20分…

作者头像 李华