当前位置: 首页 > news >正文

USACO历年白银组真题解析 | 2009年12月

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

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

适合人群:

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

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


P2969 Music Notes

【题目来源】

洛谷:[P2969 USACO09DEC] Music Notes S - 洛谷

【题目描述】

FJ 准备教他的奶牛们演奏一首歌曲。这首歌由 \(N\) 个音符组成,其中第 \(i\) 个音符持续 \(B_i\) 个节拍(\(1 \leq N \leq 50,000\)\(1 \leq B_i \leq 10,000\)),因此整首歌的长度不会超过 500,000,000 个节拍。奶牛们将在时间 0 开始演奏这首歌,因此它们将在时间 0 到时间 \(B_1\) 之前演奏第 1 个音符,在时间 \(B_1\) 到时间 \(B_1 + B_2\) 之前演奏第 2 个音符,依此类推。

然而,最近奶牛们对这首歌失去了兴趣,因为它们觉得这首歌太长且无聊。因此,为了确保奶牛们集中注意力,他向它们提出了 \(Q\) 个问题(\(1 \leq Q \leq 50,000\)),问题的形式为「在时间 \(T\) 到时间 \(T+1\) 之前的区间内,你应该演奏哪个音符?」奶牛们需要你的帮助来回答这些问题,这些问题以 \(T_i\) 的形式给出(\(0 \leq T_i \leq \text{end\_of\_song}\))。

考虑这首由三个音符组成的歌曲,音符的持续时间分别为 2、1 和 3 个节拍:

Beat:   0    1    2    3    4    5    6    ...|----|----|----|----|----|----|--- ...1111111111     :              :22222:              :333333333333333:

这里有一组五个查询及其对应的答案:

Query Note

2 2

3 3

4 3

0 1

1 1

【输入】

* 第 1 行:两个用空格分隔的整数:\(N\)\(Q\)

* 第 2 行到第 \(N+1\) 行:第 \(i+1\) 行包含一个整数:\(B_i\)

* 第 \(N+2\) 行到第 \(N+Q+1\) 行:第 \(N+i+1\) 行包含一个整数:\(T_i\)

【输出】

* 第 1 行到第 \(Q\) 行:对于每个查询,输出一个整数,表示奶牛们应该演奏的音符的索引。

【输入样例】

3 5 
2 
1 
3 
2 
3 
4 
0 
1 

【输出样例】

2 
3 
3 
1 
1 

【解题思路】

在这里插入图片描述

【算法标签】

《洛谷 P2969 Music Notes》 #排序# #前缀和# #USACO# #2009#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
int n, q, a[50005],b[50005];
int main()
{cin >> n >> q;  // 输入n和qfor (int i=1; i<=n; i++) {int tmp;cin >> tmp;a[i] = a[i-1]+tmp;  // 使用前缀和记录}for (int i=1; i<=q; i++) {  // 记录q个问题cin >> b[i];}for (int i=1; i<=q; i++) {  // 遍历q个问题int x = b[i];int l=1, r=n;  // 二分搜索模板while (l<=r) {  int mid = l + (r-l)/2;if (a[mid]<=x) {  // 当mid对应的值小于等于xl = mid+1;  // 左指针右移至mid+1} else r = mid-1;  // 否则右指针左移至mid-1}cout << l << endl;  // (输出什么感觉就是个玄学,正常先移动左指针,最后输出的就是r,这里输出l)}return 0;
}

【运行结果】

3 5 
2
1
3
2
3
4
0
1
2
3
3
1
1
http://www.jsqmd.com/news/361564/

相关文章:

  • UE4_UE5 的敏捷下载安装教学 (UE产品展示程序实例教程 1)
  • 全网最详渗透测试流程:步骤拆解 + 实操要点,新手也能看懂
  • 2026年清远全包围汽车脚垫优质生产商排名,车百强性价比如何 - 工业设备
  • 2026护网行动全指南(CSDN干货版):从认知到实战,攻防落地可照搬
  • 2026年徐汇区助听器专卖店推荐:居家与外出场景全面评测,针对复杂环境聆听痛点指南 - 品牌推荐
  • 短视频拍摄运营实力领航——三家高新技术企业,定制化服务赋能企业增长 - 朴素的承诺
  • 2026年重庆中职学校哪家好?多家优质院校详细解析 办学实力全拆解 - 深度智识库
  • 2026 网络安全转行指南:薪资明细 + 阶段工作规划 + 行业前景深度分析(新手必看)
  • 收藏!美团大模型产品岗面试全拆解|小白/程序员必看,附技术+业务干货
  • 2026年知名的于都别墅装饰装修/装饰装修直销厂家 - 行业平台推荐
  • 如何为不同听力场景选择专卖店?2026年徐汇区助听器全面评测与推荐 - 品牌推荐
  • 基于极大重叠离散小波变换的多分辨率分析附Matlab代码
  • 2026年知名的人行道透水砖,混凝土透水砖,pc透水砖厂家行业实力推荐 - 品牌鉴赏师
  • 助听器验配如何避坑?2026年徐汇区助听器专卖店推荐与评测,解决设备兼容与体验不佳难题 - 品牌推荐
  • 必收藏!程序员别慌!传统技术栈不吃香?大模型才是职场破局关键
  • 云翼超算 全球领先自主知识产权新一代非线性数字化仿真软件
  • P6KE20CA双向 TVS瞬态抑制二极管: 20V双极性防护,快速响应
  • 算法面试必刷:动态规划的核心思想与10个经典实战例题
  • OpenClaw for macOS: 完整本地化部署指南(2026.2.6-3 版本)
  • 2026年可靠的外墙红砖片外墙文化砖,干挂外墙砖,陶土外墙砖厂家行业优选榜单 - 品牌鉴赏师
  • 脱壳常用编程语言的OEP
  • 2026年诚信的金属工艺品徽章,文创金属工艺品,金属工艺品奖牌厂家口碑供应商推荐榜 - 品牌鉴赏师
  • P13085 [SCOI2009] windy 数(加强版)
  • 2026年北京监理公司推荐:数字化转型趋势评测,涵盖基建与更新场景合规痛点 - 品牌推荐
  • 2026年徐汇区助听器专卖店推荐:基于专业验配与长期服务维度的深度评价榜单 - 品牌推荐
  • 2026年口碑好的烧结透水砖,烧结陶土砖,烧结路面砖厂家选购决策指南 - 品牌鉴赏师
  • 2026年知名的天然气加热器/管道加热器哪家质量好厂家实力参考 - 行业平台推荐
  • 2026年北京监理公司推荐榜单:覆盖多类重大工程、90%客户续约率的五强权威认证 - 品牌推荐
  • 2026年评价高的陶瓷仿石砖,pc仿石砖,外墙仿石砖厂家行业实力推荐 - 品牌鉴赏师
  • 国产vs进口:回转炉主流品牌推荐清单 - 品牌推荐大师1