news 2026/10/27 19:31:04

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 tt(t = 1 , 2 , 3 , … t=1,2,3,\dotst=1,2,3,…),位置0 00的奶牛移动到位置⌊ t / 2 ⌋ \lfloor t/2\rfloor⌊t/2⌋,位置1 … ⌊ t / 2 ⌋ 1\dots \lfloor t/2\rfloor1…⌊t/2⌋上的每头奶牛向前移动一个位置,并且奶牛t tt加入到队列的末尾(位置t tt)。

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

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

【输入】

第一行包含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/10/28 7:48:31

springboot安心养老院运营管理系统 _w0fj9sc3

目录系统概述核心功能技术架构优势特点开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 SpringBoot安心养老院运营管理系统是一款基于SpringBoot框架开发的综合性管理平台&#xff0c;旨在优化养老院的日常运营流程&am…

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

js函数柯里化

柯里化是把接受多个参数的函数变换成接受一个单一参数&#xff08;最初函数的第一个参数&#xff09;的函数&#xff0c;并且返回接受余下的参数而且返回结果的新技术。 用数学表达式来理解可能更直观&#xff1a; 假设有一个函数 f&#xff0c;它接受三个参数&#xff1a; f…

作者头像 李华
网站建设 2026/10/28 2:36:11

为什么0基础转行网络安全,web安全是首选?

随着 5G、工业互联网、人工智能等新兴领域技术的兴起&#xff0c;从而快速推动了各国从人人互联迈向万物互联的时代。 奇安信董事长齐向东曾说过&#xff1a;“如果说5G带来了物联网和人工智能的风口&#xff0c;那么网络安全行业就是风口的平方——风口的风口。" 因此&a…

作者头像 李华
网站建设 2026/10/20 9:41:13

知网和维普AI检测有什么区别?如何针对不同平台降AIGC疑似度

知网和维普AI检测有什么区别如何针对不同平台降AIGC疑似度的核心问题是什么&#xff1f; 在深入探讨这个话题之前&#xff0c;我们需要先理解问题的本质。知网和维普AI检测有什么区别&#xff0c;这是很多同学在处理论文时都会遇到的问题。 AIGC检测系统的工作原理是分析文本的…

作者头像 李华
网站建设 2026/10/26 8:13:55

研究生必看!碾压级的AI论文工具 —— 千笔·专业学术智能体

你是否曾为论文选题发愁&#xff1f;是否在写到一半时感到无从下手&#xff1f;又或者反复修改却始终达不到理想效果&#xff1f;论文写作的每一步都充满挑战&#xff0c;尤其是对专科生来说&#xff0c;时间紧、任务重&#xff0c;稍有不慎就可能陷入焦虑。而如今&#xff0c;…

作者头像 李华
网站建设 2026/10/21 13:26:16

写论文省心了 8个AI论文工具测评:继续教育毕业论文+科研写作必备

随着学术研究的不断深入&#xff0c;论文写作已成为高校师生、科研工作者及继续教育学员面临的重要挑战。从选题构思到文献检索&#xff0c;从内容撰写到格式规范&#xff0c;每一个环节都可能成为效率瓶颈。尤其在AIGC技术日益普及的背景下&#xff0c;如何选择一款真正契合自…

作者头像 李华