USACO美国计算机奥林匹克活动 2023-2024新赛季的时间线安排是怎么样的?
一般来说,USACO竞赛时间在12月-3月期间,每月都有一场比赛每次3-5小时,并在规定时间内完成3-4道题。23-24年USACO竞赛时间安排如下:
第一场比赛:2023年12月16日-19日
第二场比赛:2024年1月27日-30日
第三场比赛:2024年2月24日-27日
美国公开赛:2024年3月24日-27日
首先进入官网(官网地址:http://www.usaco.org/),点击右侧登录栏的“Register for new Account”进行账号注册,入下图所示:
进入官网,点击右侧登录栏的“Register for new Account”进行账号注册。
注册新账户,用英文正确填写个人信息:用户名、邮箱、名、姓氏、所在中学、高中毕业年份(已毕业则输入9999)、国籍(中国填写CHN)。
个人信息填写完成后,点击“submit”提交,账号密码会发送至填写的邮箱中。
在邮箱查收自己的账号密码,并登录官网(24小时内首次登录方可激活,登录后可修改密码)。
进入官网,在右侧登录账号,再点击左侧赛事说明中的“here”进入比赛。
正式开始前详细阅读比赛规则,如果参赛选手想阅读中文版可以选择浏览器自带的网页翻译功能或者翻译软件。
阅读完比赛规则,将页面下滑至最下方,点击“Start the Contest!”即可开始比赛。
跳出弹窗后,点击“确定”进入题目页面。注意:一旦点击“确定”按键,选手的比赛用时就会立即倒计时,且无法暂停。
进入题目页面,点击标题即可查看相应题目并提交程序。
对于尚未提交的试题,封面页会对应显示“Not submitted”。对于已经提交的试题,封面页会对应显示“Submitted and Graded”。
进入题目后,点击语言栏选择Chinese(zh),可以切换题目语言为中文。
根据官方规则,目前只有青铜组和白金组试题提供中文版,其他组别暂时没有,后续官方可能会更新。
需要中文版的参赛选手可以选择使用浏览器自带的网页翻译功能或者翻译软件翻译试题。
在规定的时间内依次解题。选择使用的编程语言,在本地完成代码,以文件形式进行提交。
国内信奥赛采用C++14标准,USACO建议选择C++11。
USACO要求程序使用标准输入输出,相应的文件名在题目中会有写明。但务必注意的是,USACO的评测环境为UNIX,对于文件名的大小写是敏感的,同时规定文件内容的每一行均需以换行符’\n’结尾。
提交文件后,系统会对代码进行解析和评测。
USACO允许选手在比赛时间内多次提交自己的程序,最终评测和排名以最后一次提交的程序为依据。
USACO目前判分方式和NOI系列赛事相同,即依据程序所能正确求解的测试点数量按比例计分。对于各个测试点,一般题目会标注相应的时限要求和内存要求(如未具体标注,则C/C++/Pascal默认时限2秒,Java/Python默认时限4秒,内存均默认256MB)。
以上为一个题目的评测示例,即最终包含了10个测试点,其中7个正确、3个超时——绿色表示正确,红色表示错误(x表示错误答案,t表示时间超限,!表示运行时错误或内存超限,e表示输出文件为空,m表示找不到输出文件)。
07、 USACO竞赛成绩查询
代码提交后,系统会自动给出评分,如果拿到了满分,系统会提示直接晋级。
如果没有拿到满分,需要等待官方公布晋级分数线,每场月赛结束后一周内,官方会通过电子邮箱发放参赛选手的程序的评测结果。成功晋级就可以在下一场月赛中参加更高级别的竞赛,没有成功晋级只能在下一场月赛中继续在原组别中打比赛。
同时进入官网,点击Contests,在相应的页面上可以找到比赛的最终结果总结、测试数据、题目解析、比赛的简要分析及参赛选手的成绩统计。
USACO竞赛一共有4个级别,青铜、白银、黄金、白金四个级别,一进入USACO注册账号即为铜级,一级一级的比赛刷高自己的等级,如果你最终能够获得黄金或者白金级别的奖项,绝对是提高竞争力的大杀器。
青铜级别比赛/
参赛资格:一进入USACO注册账号即为铜级。
难度等级:铜级考试只要基本编程常识,会至少一种编程语言。铜级的编程限制时间还是够用的,大部分初次参赛的选手都能在次考试中晋级白银级。
考点:主要是考察编程掌握程度,排序、二分查找;
白银级别比赛/
参赛资格:通过青铜级比赛的选手。
难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。
黄金级别比赛/
参赛资格:通过白银级比赛的选手。
难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且对数据结构有比较深的了解。
白金级别比赛/
参赛资格:通过黄金级比赛的选手。
难度等级:需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案,可能不只一个,得出的答案也不只一个。
USACO每场比赛4-5个小时。可以在比赛规定时间开始后登陆USACO账号,从在线打开试题后开始计时。一套试题中有三道题,选手需要在时间结束前通过网络将写好的程序提交。程序提交后官网会给出用test case检测程序的结果,并根据结果给出这一题的得分。可以使用C++、Java、Python、Pascal和C中的任意一种编程。比赛对于程序的大小,运行需要的内存以及运行的时间都有一些具体规定。
每次比赛,实力强的选手可以连续升级。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。开始比赛4小时内,如果拿到了高分(接近满分或满分),系统会提示直接晋级,可以在这三天内继续挑战下一级,只要实力足够,一场考试可以升到满级白金级。没能拿到满分的选手需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个月后的第二场继续参赛晋级。
2021-2023赛季的情况如下:
在USACO竞赛中,三个组别的晋级分数线相对稳定,大致在750分左右。USACO的评判标准表明,题目难度的增加并未引起评分标准的急剧波动。这意味着,无论题目复杂与否,学生们都能在一个相对稳定的环境中比赛,使得竞争更加公正可掌握。