奔向更加美好的明天(更新中)
:::info[前言]{open}
我自 2022 年入学华中科技大学,即开始从事湖北省 NOI 系列活动的考务工作。
2025 年是我接触算法竞赛行当的第十年。随时本科行将毕业,我也将离开华科,离开湖北。CSP-J/S 2025 或将成为我在湖北现场进行的最后一场考务工作。之后,我将回到我出发的地方:江苏,继续提供技术支持。
这也是不同寻常的一场考务工作。2025 年 8 月,湖北省组织单位正式宣布,自 2025 年 9 月起,湖北省 NOI 系列活动的环境变更为 NOI Linux 2.0 的实体机。自 2024 年 11 月技术委员会表决通过有关议案以来,NOI Linux 2.0 终于在湖北大规模落地。 :::
Chapter 0:我们为什么要出发
Chapter 0.1:世界开始的地方
艾伦・麦席森・图灵于 1936 年提出了“图灵机”的抽象模型,冯・诺依曼于 1945 年提出了冯氏结构。
计算机的世界从此开天辟地。至今,计算机所做的全部工作,都只是忠实地重复下面的过程。而我们现有的所有工具,都是为这个过程做了一层又一层的抽象。
while (true) {
Fetch instruction at MEM[PC]
Run instruction
Update PC
}
IOI 自 1989 年开始举办。在那时,选手需要通过纸带打孔的方式,编写他们的程序。计算机还如此大型,以至于需要多人合作,才能让它完成“计算”的使命。
而现在,以 C/C++ 为代表的传统语言仍具影响力,Rust 等新兴语言发起一轮又一轮的冲击。
Chapter 0.2:CCF NOI 的历史沿革
CCF NOI 系列活动亦经历了数次重大的技术变更。
从操作系统的角度,在 2004 年前后,NOIP 的评测由各省自己进行,在 Windows 系统下,通过批处理程序,运行选手的程序,并使用 fc 比对输出。仅有省一等奖的代码需要送 CCF 进行复核。自 2012 年起,CCF 指定 NOI Linux 为标准竞赛环境,并在 2021 年发布了 NOI Linux2.0。
从编程语言的角度,2019 年前,CCF 支持 Pascal、C、C++ 三类语言。自 2019 年起,只可以使用 C++ 语言。同时,对于 C++ 语言的限制也逐步放开。从 STL 不被允许使用,再到如今的 C++14 与下划线开头函数均可使用,Modern C++ 的威力在被逐步释放。
Chapter 0.3:操作系统之争
操作系统是对计算机硬件的抽象。它统一管理系统资源,为用户提供良好的操作界面。不同的操作系统有其不同的设计哲学。
一直以来,Windows 操作系统占据了大部分的家用电脑操作系统市场份额,似乎购买笔记本电脑时,预装一份 Windows 操作系统已成为标配。自然而然的,参与竞赛的选手会更加熟悉 Windows 系统,机房的电脑也都有 Windows 系统,使用 Linux 系统,似乎是在给所有人添麻烦。