Benjamin Qi,人生第一场编程比赛一道题没做出来,后来连拿两届IOI世界第一
计算机竞赛传奇人物
2022年12月10日,Facebook的母公司Meta举办编程大赛Hacker Cup的总决赛,全世界25名选手参加,比4个小时。
这个比赛交了答案,不会马上告诉你对不对,要等比完才统一公布。比赛结束半小时后,主办方开直播公布成绩:前三名都是84分。
六道题,这三个人做出来的是同样五道,剩下那道全场没人做出来。分数相同,就看谁用的时间少。
第一名是美国的Benjamin Qi,网名Benq,当时在麻省理工读大四。他比第二名楼天城少用了43分28秒。楼天城那时已经是无人驾驶公司小马智行的CTO。
拿过六块IOI金牌的tourist,这场排第八。
第一场比赛,交了11次全错
Benjamin Qi出生于2001年,家住美国新泽西州普林斯顿。
他最早参加的是数学竞赛。八年级(相当于国内初二)读完的那个暑假,几个一起比数学的朋友劝他试试USACO。USACO是美国的信息学奥赛,按难度分铜、银、金、白金四级。他记得自己那年大概13岁。
那之前,他只照着教程学过一点JavaScript。那个暑假,他开始学C++,把USACO官网上的练习题一道一道往下做,还找到了Codeforces。Codeforces是全球最大的编程竞赛网站,高手们在上面比赛、攒积分。
2015年7月14日,他第一次参加Codeforces的比赛,前后交了11次程序。有的连编译都没通过,有的运行出错,有的答案不对,一次都没对。到最后,一道题也没做出来,排第2087名。
2017年,他在网上提起这场比赛:
我的第一场Codeforces比赛,做出了0道题!:D
2015年12月,他第一次参加USACO,一场比赛就从铜级考进了白金。USACO的规矩是,考满分可以当场升一级,接着做下一级的题。他铜级满分,升银级;银级又是满分,升金级;金级考了854分,过了800分的线,直接升进白金。
这时,他学编程才半年左右。
2018年有人问他,当初为什么打比赛。他说:
想和ksun48(还有我好友列表里的某几位)一样强。
ksun48是加拿大选手Kevin Sun的网名。
进了国家队,没去成IOI
IOI是中学生的编程世界赛,每个国家每年最多派4个人。美国先从白金级里选二十多人进集训营,营里再考6场选拔赛,定下最后4个人。
2017年4月,他读10年级,相当于国内高一。他在Codeforces上贴了一份美国队候选名单,当时排前四的里面没有他自己,后面跟了一句:
希望集训营之后能变一变 ;)
集训营考完,他进了国家队。有人在网上预测当年IOI的名次,把他也排了进去。他回帖说,该换成队友罗哲正,选拔赛罗哲正几乎场场比他高,"我只希望能进前25……"
那年的IOI在伊朗德黑兰。美国队四个人里,有三个因为签证问题没能成行,其中就有他。
只有罗哲正一个人去了德黑兰,代表美国队参赛,拿了第三名。
2020年,IOI官网采访他,问他喜欢哪些题。他举的几道里有一道叫Wiring,出自他没去成的2017年那届。
335个人里,只有他一个人做出来
2018年9月,他终于站上了IOI的赛场,比赛在日本筑波。
IOI比两天,每天3道题,每题100分。每道题按难度分成几档,做到哪一档,就拿哪一档的分。
第一天有一道题叫Seats(座位)。他后来说,自己一开始并不会做,"就从最简单的那一档做起,一点点往上做"。
335名选手里,这道题拿满分的只有他一个人。第二天的Highway(高速公路收费)也一样,满分只有他一个。
他总分499,排第一,比第二名中国选手杨懋龙多30分。
2020年说起这道题,他是这么说的:
我喜欢IOI 2018的Seats,因为我是唯一做出来的人 ;)
2019年8月,IOI在阿塞拜疆的巴库举行。开赛40分钟,所有选手的电脑被统一重启,他已经写好的一道题没了,只能从头再写。
这一年他还是第一,比第二名高35.87分。IOI办了三十多年,至少两次拿总分第一的只有5个人,他是最近的一个。
和tourist做同一套题
他和tourist在决赛里碰过好几次。2020年的Hacker Cup总决赛,两人都是76分,他用时多了将近一个小时,排第二。
2023年1月3日,Codeforces办了一场新年赛,两人又碰上了,都把8道题全做了出来。最后一道,Benq在第117分钟做对,tourist在第124分钟。Benq第一,tourist第二。
赛后,Benq的积分涨到3813,超过了tourist的3768。有网友专门开了个帖子,标题叫"祝贺Benq,我们的新神!"
给后来的人出题
2019年秋天,他进了麻省理工。那年12月,他开始给USACO出题。
2020年1月,有人发帖问,IOI是不是花钱请人辅导就能赢。他回复说,自己从没受过一对一的指导。
同年7月,由他牵头,几位USACO老选手在网上做了一份免费的USACO学习指南,从铜级一直讲到白金级,还在许可协议里写明,不准拿去开收费课。
2021年USACO公开赛,金级和白金级的6道题全出自他手。有人抱怨白金级的题快成他一个人的了,他回:
我同意,这样对我也不是好事。可惜题库里别人出的白金级题实在不多……
他比赛用的代码模板,末尾列着几条做题时要提醒自己的事,前面还有一句注释:"底下这些,你真该好好读读。"最后两条是全大写的:
把东西写下来。别在一种思路上卡死。
2023年,他从麻省理工本科毕业,现在在纽约的AI公司Anthropic上班。比赛一直没停。
2025年12月,俄罗斯互联网公司Yandex办的编程大赛Yandex Cup在伊斯坦布尔举行决赛,Benq拿了第二。
第一名是Kevin Sun。
也就是ksun48,Benq当年说想赶上的那个人。