news 2026/4/15 18:51:07

USACO历年白银组真题解析 | 2026年1月

作者头像

张小明

前端开发工程师

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

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

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

适合人群:

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

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


P14977 Lineup Queries

【题目来源】

洛谷:[P14977 USACO26JAN1] Lineup Queries S - 洛谷

【题目描述】

有一队奶牛,初始时(即时刻t = 0 t = 0t=0)只有奶牛0 00在位置0 00(这里,一头奶牛在位置k kk表示它前面有k kk头奶牛)。在时刻t ttt = 1 , 2 , 3 , … t=1,2,3,\dotst=1,2,3,),位置0 00的奶牛移动到位置⌊ t / 2 ⌋ \lfloor t/2\rfloort/2,位置1 … ⌊ t / 2 ⌋ 1\dots \lfloor t/2\rfloor1t/2上的每头奶牛向前移动一个位置,并且奶牛t tt加入到队列的末尾(位置t tt)。

回答Q QQ1 ≤ Q ≤ 10 5 1\le Q\le 10^51Q105)个独立的查询,每个查询属于以下两种类型之一:

  1. 在时刻t tt刚结束时,奶牛c cc在什么位置(0 ≤ c ≤ t ≤ 10 18 0\le c\le t\le 10^{18}0ct1018)?
  2. 在时刻t tt刚结束时,位置x xx上是哪头奶牛(0 ≤ x ≤ t ≤ 10 18 0\le x\le t\le 10^{18}0xt1018)?

【输入】

第一行包含Q QQ,表示查询的数量。

接下来的Q QQ行,每行包含三个整数,指定一个查询,格式为 “1 11c cct tt” 或 “2 22x xxt tt”。

【输出】

将每个查询的答案输出在单独一行。

【输入样例】

2 1 4 9 2 2 9

【输出样例】

2 4

【解题思路】

【算法标签】

《洛谷 P14977 Lineup Queries》 #模拟# #Ad-hoc# #USACO# #2026#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong// 将int定义为long long类型,避免大数溢出intq,type,a,t;// q: 查询次数,type: 操作类型,a: 初始值,t: 时间/目标值signedmain()// 使用signed main()替代int main(),因为int被重定义为long long{cin>>q;// 读入查询次数while(q--)// 处理每个查询{cin>>type>>a>>t;// 读入操作类型、初始值和时间参数if(type==1)// 类型1:正向模拟过程{intc=a;// 当前值intcur=c;// 当前状态变量intnow=c;// 当前时间// 模拟从时间now到时间t的过程while(now<t){if(cur==0)// 如果当前状态为0{now++;// 时间推进1单位cur=now/2;// 状态更新为当前时间的一半}else// 当前状态不为0{intlimit=(now+1)/2;// 计算当前时间的上限if(cur>limit)// 如果当前状态超过上限{// 计算目标状态和时间inttarget=2*cur-1;intjump=target-now;// 需要跳跃的时间// 如果跳跃会超过目标时间t,则调整跳跃量if(now+jump>t){jump=t-now;}now+=jump;// 时间跳跃}else// 当前状态未超过上限{intjump=cur;// 跳跃量为当前状态值// 如果跳跃会超过目标时间t,则调整跳跃量if(now+jump>t){jump=t-now;}cur-=jump;// 状态减少now+=jump;// 时间推进}}}cout<<cur<<endl;// 输出最终状态}else// 类型2:逆向推导过程{intx=a;// 目标状态intcur_t=t;// 当前时间intcur_x=x;// 当前状态// 逆向推导,从时间t向回推导while(cur_t>0){if(cur_x==cur_t)// 特殊情况:状态等于时间{cur_x=cur_t;break;}// 如果当前时间不足以支持当前状态if(cur_t<2*cur_x){break;// 停止推导}if(cur_x==cur_t/2)// 特殊规则:状态等于时间的一半{cur_x=0;// 状态归0cur_t--;// 时间回退1单位}else// 一般情况{// 计算回退步数kintk=(cur_t-2*cur_x)/3;if(k==0)// 如果计算为0,则至少回退1步{k=1;}cur_x+=k;// 状态增加cur_t-=k;// 时间回退}}cout<<cur_x<<endl;// 输出推导得到的初始状态}}return0;}

【运行结果】

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

计算机PHP毕设实战-基于vue的智能家教预约服务教学平台设计与实现基于php+vue的家教预约服务网页设计与开发【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华
网站建设 2026/4/8 0:16:03

基于PLC的升降横移式立体车库(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC的升降横移式立体车库(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码基于PLC的升降横移式立体车库 摘要&#xff1a;当前我国经济社会发展迅猛&#xff0c;人们的生活水平日新月异&#xff0c;汽车保有量不停增长&…

作者头像 李华
网站建设 2026/3/30 21:34:34

时序数据库InfluxDB迁移替换:运维人员常遇的3个隐性痛点

作为企业运维人员&#xff0c;每次启动时序数据库InfluxDB迁移替换项目&#xff0c;是否总被突发问题打乱节奏&#xff1f;明明已按规范完成数据导出、结构映射与接口适配&#xff0c;上线前夜却突然发现监控告警延迟飙升、历史查询响应超时&#xff0c;甚至因时间戳精度偏差导…

作者头像 李华
网站建设 2026/4/8 14:58:09

2026年的SEO:演进、挑战与未来的核心形态

当Google每天推送12次以上算法更新&#xff0c;当TikTok、ChatGPT等平台吞噬6%的全球搜索量&#xff08;较去年增长200%&#xff09;&#xff0c;当“零点击搜索”让70%的用户无需打开网页就能获取答案——越来越多营销人开始质疑&#xff1a;2026年&#xff0c;SEO真的不行了吗…

作者头像 李华
网站建设 2026/4/3 7:34:14

为什么运维要转行

为什么运维要转行 粉丝提问&#xff1a; 在各种APP里经常看到&#xff0c;趁年轻赶紧远离运维&#xff0c;为什么&#xff1f; 互联网老兵是这样回答的&#xff1a; 运维有很多分类&#xff0c;有干实施运维的&#xff0c;有干交付运维的&#xff0c;也有自动化运维&#xf…

作者头像 李华
网站建设 2026/4/13 17:32:57

计算机Nodejs毕设实战-基于nodejs的宠物医院宠物就医挂号预约管理系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

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

作者头像 李华