USACO美国计算机奥赛首场比赛已经结束,官网已公布晋级名单‼️后续还有三场比赛,同学们可以根据时间自行安排。
2024-2025年赛季四场比赛时间
第一场比赛:
2024年12月13日至16日
(已结束)
第二场比赛:
2025年1月24日至27日
第三场比赛:
2025年2月21日至24日
美国公开赛(US Open):
2025年3月21日至24日
🍊训练营将于2025年5月22日至31日进行,只有美国籍选手会被邀请参加。
🍊最新USACO 12月真题🍊
今年USACO对赛事做出了更加严格的新规定,若不想被USACO组委会终生禁赛,请务必仔细阅读📖
USACO赛事最新资讯
USACO新增规则
1.新增“竞赛结果认证”环节
这个赛季,USACO全新引入了“Certified Contest Result”——“竞赛结果认证”环节。
在Gold和Platinum级别中,所有参赛选手必须在美国东部时间周六12:00至12:15这一规定时间窗口内开始比赛,才能获得“认证成绩”。
🌟USACO官方认为有“Certified Contest Result”比没有具有更高的可信度。
Silver和Bronze级别暂无认证环节,比赛时间要求不变。
2.Gold到Platinum级别必须认证
Gold级成绩必须经过认证才能晋升参加Platinum。
3.训练营候选人需要认证三个分数
美国籍选手若想受邀参加夏季训练营,必须在四场比赛中至少获得三个认证分数,分别是Gold,Platinum和US Open。
4.比赛禁用生成式AI
参赛选手禁止使用生成式AI作答(如Copilot或ChatGPT等)。
USACO竞赛学术行为规范和诚信
USACO非常重视学术诚信,官方已经采取了严格的政策,以确保竞赛的公正性。
▶️独立完成所有工作,不得组队合作。
▶️美国学生在竞赛期间不得使用VPN或其他技术隐瞒IP地址(即,你的IP地址应为你所在学校或家庭网络的IP)。
▶️禁止与除竞赛负责人之外的任何人讨论竞赛题目。
▶️在竞赛进行中不得分享任何与竞赛相关的技术信息或代码。
▶️USACO竞赛所有代码必须从头开始编写,唯一可以参考的资源是编程语言的语法或库函数描述。因此,不能使用预先编写的代码或“模板”来帮助编写代码,且不得参考除编程语言基本功能(如语法、库函数、输入/输出等)之外的资源。
▶️不得使用多个登录ID。不得在账户中使用无效信息(如无效的姓名、毕业年份或国家)。
▶️禁止提交任何对评测机有恶意行为的代码(例如,不得尝试打开网络连接,故意让评测机变慢等)。评测环境会监控活动和系统调用,以防止禁用行为。
▶️代码提交必须通过usaco.org网站的界面完成(即,选择文件并点击“提交解决方案”);不得通过其他方式提交(如通过自动化脚本)。
⚠️⚠️任何违反上述政策的参赛者将终身禁赛,无法参加任何USACO活动。
组委会将跟进作弊行为,联系学生的老师或学校校长;以往也有学生因此被开除,因此请注意,作弊的后果可能会超出USACO的参与资格。
如果大学或其他项目询问某个参赛者是否曾被取消资格,相关信息将被提供。
USACO比赛介绍
所有人都可以参与USACO竞赛,但只有美国的中学以下学生有资格被选为决赛选手,参加USACO训练营,并加入美国IOI或EGOI队伍。
USACO竞赛是免费的,没有任何费用。
晋级规则
所有新参赛者都将从青铜组开始逐级晋级。
如果你在竞赛中获得满分,你将有资格获得“竞赛中晋升”;否则,在竞赛结束后,将根据每场竞赛的晋升标准,授予所有得分高于晋升门槛的参赛者晋升资格。
竞赛中被升级
如果你获得了竞赛中的晋升,你可以在竞赛窗口的任何时间开始下一场竞赛,并且拥有完整的计时器;也就是说,你在之前的竞赛中花费的时间不会计入下一场竞赛的时间。
🍊同学们请使用相同的登录ID参加所有竞赛,这样官方可以跟踪每个人的进展。晋升是永久性的,即使跨赛季也是如此。
竞赛形式
竞赛通常持续4到5小时。可以在竞赛窗口开放的任何时段参加竞赛。
每个组别每场竞赛通常会有3到4道题目,你需要用C、C++、Java或Python提交解决方案。
竞赛的官方语言是英语,尽管提供了多种语言版本的题目,但如果翻译之间存在不一致的地方,应该以英文版为准。
计算机语言推荐
哪种编程语言才是“最佳”的选择?由于C++是IOI比赛唯一支持的语言,所以一旦你达到较高的级别,请务必使用C++。
除此之外,竞赛还支持Java和Python,以确保竞赛能够覆盖更广泛的受众,因为这两种语言也非常流行,特别是在较低的级别中,使用它们是完全合理的。
🍊Pascal语言已经在USACO中被停止使用了。Pascal的用户,将需要转向其他语言来参与竞赛。
语言技术细节
▶️对于C/C++程序员:
程序使用gcc/g++ 7.5.0编译,使用“-O2”优化标志和“-lm”来访问数学库,使用“-std=c++11”或“-std=c++17”来启用对C++11或C++17的支持。整数为32位;如果需要64位整数,请使用“long long”。使用C风格的I/O(如scanf、printf)时,读取或写入long long变量时,请使用“%lld”格式字符串。
▶️对于Java程序员:
程序使用OpenJDK运行时环境版本11.0.10编译和运行,程序的JVM堆栈大小限制为256MB。请注意,System.out.println()输出必须在标准输出上运行,因此将其重定向到文件或类似的设备会导致错误。
▶️对于Python程序员:
程序使用Python 3.8解释器运行。在Python中,标准输入/输出是默认的I/O机制;必须使用标准库的input()和print()来处理输入输出。
竞赛题目
竞赛中的题目主要是算法性质的,因此解决所有测试用例并满足时间限制可能需要巧妙的算法和/或数据结构。
🌟每个题目的得分取决于你在时间限制内能够解决多少个测试用例。
所有题目描述都力求简明扼要,没有故意设置“隐藏的陷阱”(不过请注意,合法但复杂的数据集也会作为测试的一部分)。题目通常是具有挑战性的,极少有参赛者能够获得接近完美的分数。
答题细节规范
程序大小必须小于100,000字节,并且必须在30秒内编译完成。除非另有说明,程序的总内存使用量将限制在约256MB。
一个常见的“运行时错误”原因是在本地计算机上运行正常,但在评测服务器上由于内存分配过多而失败。
不要提交打开与竞赛任务无关的数据文件的程序。只读输入文件,并且只写输出文件,这些文件在题目中会有明确规定。不得使用“临时”数据文件。
除非另有说明,程序必须是确定性的,即每次运行相同的输入时必须产生相同的输出。非确定性的程序可能会被取消资格。需要注意的是,基于随机数的程序仍然可以提交——它们应该使用固定的种子,以确保每次运行得到相同的结果。
除非另有说明,否则不能保证所有可能的合法数据集都能在时间限制内完美解决(例如,某些任务可能要求近似最优解,部分得分)。
对于某些问题(特别是高级别的题目),由于Python的执行速度较慢,可能无法在规定的时间内解决所有输入。我们通常会确保C/C++/Java语言的所有问题都可以完全解决,并且所有青铜级问题在Python中也能够完全解决。
尽管我们通常设计题目时会确保数字答案能够适配标准的32位整数,但并不保证。如果需要更大的数据类型(如64位整数),我们通常会在题目说明中注明,但最终还是要由参赛者自己判断何时需要使用这些类型。
仅由print语句组成的程序可能会被取消资格。如果在竞赛期间对某些测试用例提供了反馈,参赛者不得提交重复的程序,只是为了反向推断输入。程序必须真正计算请求的答案,而不仅仅是从预先计算好的查找表中打印结果。
程序不得暂停并等待按键。例如,如果你的代码中调用了system("pause"),评测环境可能会因等待一个不存在的按键而超时,返回“空输出文件”等错误。
不再需要过去USACO竞赛和训练系统中使用的头文件(如PROB:和LANG:)。提交代码时请确保从下拉框中选择正确的编程语言。
对于编译语言,程序不需要去除所有编译器警告。编译器错误会阻止程序被评测。
2024年首场USACO获奖情况
USACO 2024年12月的竞赛共有15,564名用户登录参加。
总共有12,170名参赛者提交了至少一个解决方案,来自100多个国家。其中,4,940名参赛者来自美国,此外,中国、加拿大、韩国、罗马尼亚、马来西亚和印度等国家的参赛者也参与度较高。
总共有32,484个评分提交,按编程语言分类如下:
- 18,801个C++17
- 5,079个C++11
- 4,910个Python 3.6.9
- 3,344个Java
- 230个C
- 120个Python 2.7.17
绝大部分参赛者使用的都是C++语言。
各组别参赛情况
铂金组共有421名参赛者,其中260名为高中及以下的学生;
金组共有1,012名参赛者,其中697名为高中及以下的学生。所有在此次竞赛中得分达到700分或以上的参赛者将自动晋级为铂金组;
银组共有4,656名参赛者,其中3,410名为高中及以下的学生;
铜组共有11,472名参赛者,其中8,373名为高中及以下的学生。
🍊从官方给出的数据可以看出USACO在全球的受欢迎程度,出了美国本土学生外,中国参赛选手是最多的,并且高中及以下学历的参赛者是主力军。
如果你是计算机方向的学生,千万不要错过USACO!
机构竞赛课程
课程 | 开班时间 |
NEC全国赛一对一指导 | 单独定制 |
USACO一对一指导 | 单独定制 |
USABO+BBO生物竞赛融合班 | 1月17日 |
UKChO冲刺班 | 人满即刻开班 |
AP+CCC学科竞赛班 | 1月20日 |
AIME考前刷题班 | 1月21日 |
AMC8考前冲刺班 | 1月4日 |
AMC10/12零基础全程班 | 多班滚动开班 |