news 2026/6/10 11:03:14

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/6/9 18:30:28

情感计算在AI Agent中的应用:增强LLM的EQ

情感计算在AI Agent中的应用:增强LLM的EQ 关键词:情感计算、AI Agent、大语言模型(LLM)、情商增强、自然语言处理 摘要:本文深入探讨了情感计算在AI Agent中的应用,旨在增强大语言模型(LLM)的情商(EQ)。首先介绍了情感计算和AI Agent的背景知识,包括目的、预期读者、…

作者头像 李华
网站建设 2026/5/29 11:37:26

基于小程序的位置服务的城市路线分享系统的设计与实现

目录摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作摘要 随着移动互联网技术的快速发展&#xff0c;基于位置服务&#xff08;LBS&#xff09;的小程序应用成为城市出行的重要工具。本系统设计并实现…

作者头像 李华
网站建设 2026/6/9 21:34:51

转行大模型必看!30+程序员2个月从零入门,拿下高薪offer的完整攻略

文章是一位30北漂程序员分享从软件开发转行大模型的经历。他描述了作为程序员的困境和职业瓶颈&#xff0c;分析了大模型领域的机会&#xff0c;介绍了相关岗位及工作内容&#xff0c;提供了自学大模型的详细步骤和学习路径&#xff0c;包括数学基础、机器学习理论、数据处理技…

作者头像 李华
网站建设 2026/5/23 19:51:45

免费开源本地图片加水印工具:隐私保护与无上传风险的图片处理方案

对于摄影师、电商卖家、设计师以及自媒体创作者来说&#xff0c;图片加水印是版权保护、品牌推广和素材保护的必要步骤。然而&#xff0c;许多在线工具需要上传图片到云端服务器&#xff0c;这给用户的隐私与数据安全带来了风险。 免费开源、零成本&#xff1a;本工具完全基于…

作者头像 李华
网站建设 2026/6/6 23:03:12

【实战项目5】基于Flink新闻热搜大数据实时分析项目

重要的事情说三遍&#xff1a;有简历修改、职业规划、技术咨询、论文代写、就业培训等需求的&#xff0c;可关注主页并私信我额&#xff01;&#xff01;&#xff01;有简历修改、职业规划、技术咨询、论文代写、就业培训等需求的&#xff0c;可关注主页并私信我额&#xff01;…

作者头像 李华