Benjamin Qi,人生第一场编程比赛一道题没做出来,后来连拿两届IOI世界第一

Benjamin Qi,人生第一场编程比赛一道题没做出来,后来连拿两届IOI世界第一

本文核心观点
2022年12月10日,Facebook的母公司Meta举办编程大赛Hacker Cup的总决赛,全世界25名选手参加,比4个小时。

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当年说想赶上的那个人。

微信二维码

扫码备注【NOAI】加交流群