·
美国计算机奥林匹克竞赛USACO竞赛旨在挑战对编程充满激情的学生,要想脱颖而出可能需要大量的努力。USACO 的关注度和参与度每年都在增加。本赛季与去年相比,参与人数大幅度增加。1月竞赛时间是从2020年1月17日到1月20日。与往常一样,铜级考试在4小时内做3个问题30个测试案例。这次青铜级竞赛题目适中,一难两易,最后晋级线为750分,等于做对30个测试用例中的23个,得分达到750分或更高分的参赛者,将自动晋升为白银级。
第一题:WORD

考核点:字符串操作 解题思路:
- 1. 用空格切分输入字符串,将单词存入数组。
- 2. 每次取出一个单词,尝试将它加入某一行中。
- 3. 看这一行的长度是否超过限制长度。如果没有超过就去取下一个单词加入,如果超过就换行。
- 4. 最后输出结果字符串。
第二题:PHOTO

考核点:数组,穷举 解题思路:
- 我们现在知道了两数之和,如何反推出所有可能的原始数字序列呢?
- 假设原始数字序列的第一个数字是1,可以推出后续所有的数字序列;假设原始数字序列的第一个数字是2,可以推出后续所有的数字序列。最后我们能得到很多可能的原始序列。
- 检查条件是:这些序列必须由1到N的数字组成,不重复也不遗漏。因为是从1开始推算的,所以第一个满足的数字序列就是题目中要求的数列。
第三题:RACE

考核点:逆向思维 解题思路:
- 本题要考虑的是一个逆向问题,如果贝西可以跑上T s,并且她希望在结束时不超过X m/s,那么她能跑的最远距离是多少?
- 直觉上,我们希望她的速度在整个跑步过程中尽可能快。如果最后没有速度上限,贝西会持续每秒提高速度。不过,由于速度上限的存在,贝西可能需要从加速切换到减速,以满足在终点不超过每秒X m/s的要求。
- 因此,对于给定的速度V,贝西将以该速度行驶最多2秒 - 当她加速时为1秒,当她减速时为1秒。因此,我们可以模拟贝西可能最快的跑步,以0米/秒的速度开始,以不超过X m/秒的速度结束。我们将以每秒1米的速度增加贝西的速度,直到她跑了足够的距离完成比赛。以该速度加速时,增加贝西的行驶距离,并检查贝西的总行驶距离是否超过K m。如果未超过该距离,且贝西可以在减速时以该速度行驶,则在以该速度减速时增加贝西的行驶距离,并再次执行总距离检查。
少年创客营(teensgeeker.com)具有多年专业USACO培训经验的计算机奥赛培训机构,提供从编程零基础开始,到最高端全方位的奥林匹克计算机比赛(USACO)辅导。我们同时提供C++/Java/Python三种编程语言的奥计培训课程机构。从游戏趣味编程到奥计白金级别最高级竞赛的一站式培训。欢迎大家报名参加我们的 USACO系列培训课程。


