当前位置:首页 >> >>

NOI 竞赛技术规则

▁▂▃▄▅▆▇█▉▊▋▌精诚凝聚 =^_^= 成就梦想 ▁▂▃▄▅▆▇█▉▊▋▌ 为维护 NOI 的竞赛秩序,保证 NOI 竞赛的正常进行,特制定本规则。 竞赛设备 选手竞赛使用的计算机为个人电脑,其最低配置为: 赛扬 366 CPU, 64 兆内存, 标准的键盘, 鼠标, 10M 以太网卡, 彩色显示器,分辨率 800x600/256 色。 选手竞赛用机的具体配置由竞赛的承办单位在赛前公布。此外,竞赛承办单位为每个选手提供空白的书 写纸和书写工具。 软件环境 选手竞赛使用的计算机上安装的软件环境为: 操作系统:Debian Linux 2.2r3 编程工具:Free Pascal Version 1.0.4 GCC 2.95.2 RHIDE / FP 包含这些编程工具的访问路径已在 Linux 的环境变量中设置,并有必要的帮助文件。 选手登录 竞赛之前,参赛选手将被随机指定竞赛用计算机以及相应的登录用户名和密码。竞赛期间,登录用户名, 密码和选手身份对其他人员保密。 选手练习 参赛选手可以在组织者规定的时间段内使用竞赛用计算机进行练习。练习时选手须使用用户名"guest"和 密码"guest"登录。 参赛选手必须熟悉自己选择的竞赛环境,包括语言编程工具和所使用到的函数库或单元,以及相应的开 发环境,尤其是编辑器和调试器。此外,选手应能够熟练使用 Linux 系统执行一些常用的简单操作,例如 改变工作路径和对文件的管理等。 竞赛试题 竞赛试题以书面方式提供,分为概述页和试题正文。 在竞赛试题文档的概述页面上包括下列内容: 试题名称缩写 目录路径 输入输出文件名 可执行程序名 执行程序的时间限制 该道试题的最高得分 试题正文部分给出每一道试题的详细描述,并包含有必要的图表和示例等。在每一页的顶部都标有所对 应试题的标题,在页的底部标有该试题名称缩写。试题名称缩写是试题的标识符,以非空白 ASCII 字符给 出,其长度不超过 6 个字符,用于源程序文件名、可执行程序名、试题目录名等的构成。 参赛程序 参赛选手可以选择 Pascal 语言或者 C/C++语言编写程序,并将源程序编译成为可以独立在 Linux 上运行 的可执行程序。对于每一道试题,参赛选手应该只提交一个源程序文件。同时,使用 C/C++语言者不得使 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓

▁▂▃▄▅▆▇█▉▊▋▌精诚凝聚 =^_^= 成就梦想 ▁▂▃▄▅▆▇█▉▊▋▌ 用自己的头文件, 使用 Pascal 语言者也不得使用自己的库单元。 源程序文件名由试题名称缩写加后缀构成。 对于用 Pascal 或 C/C++语言编写的程序,其后缀一律使用小写,分别为.pas,.c,或.cpp。例如,对于试题 名称缩写为 city 的试题,使用 Pascal 语言编写的源程序的文件名应为 city.pas(大小写敏感)。当参赛选手 对一份试题提交多份使用不同后缀的源程序文件时,测试系统只从其中选取一份进行编译和测试,并以此 作为参赛选手该道试题的得分。 每道题参赛程序源代码的长度不应超过 2,000 行或 120KB。超过此长度规 定的参赛程序将被视为无效。 参赛程序应正常结束并返回 Linux 系统。任何其他的行为将被视为等同于超时导致的失败。 参赛程序中所允许的外部通讯是读入输入文件、生成输出文件、以及调用试题中指定的库函数。其它的外 部通讯操作都是非法的。在参赛程序中严禁下列操作: * 处理鼠标和键盘的输入消息 * 向串口写数据 * 对网络进行任何操作 * 创建和使用没有在试题中指定的文件 * 使用 fork、exec、system 等系统调用和库函数创建新的进程 违反以上规则的选手将被取消当天参赛资格。 输入/输出数据 输入数据从试题中指定的 ASCII 文件中读取。输入数据由一系列数据项构成。每一个数据项都是一个由 可见字符(ASCII 值 33 至 126)构成的字符串。数据项之间由空格或者换行符分隔。输入文件的格式在试 题正文中详细说明。试题正文中提供输入文件的例子。输入文件的例子同时也以计算机文件的形式提供在 试题目录中。示例输入文件及测试用输入文件中数据的格式和试题说明中定义的相同,所以选手在其参赛 程序中不需要进行数据格式正确性检查。 输出数据应写到试题中指定的 ASCII 文件中。输出文件应该按照试题说明中指定的格式书写。输出文件 中不应写入额外的数据,以免影响评测结果。 输出数据的每一行(包括最后一行)必须以一个换行符结束。同时,选手的参赛程序中不应包括下列内容: * 屏幕输出 * 除对规定文件读写外的 Linux 系统调用 参赛选手在提交程序的最终版本之前,应该删除所有屏幕输出指令以及各种调试用的打印输出语句和 Linux 系统调用等。 对于每一道试题,在相应的目录中都有一个格式检查程序来检查输出文件格式的合法性。该程序的文件 名是: <shortname>_check 例如,在第一天试题 ring 的格式检查程序的文件名是 ring_check,在目录~/day1/ring 下,其中~是竞赛者 的基本目录(home directory)。 格式检查程序仅仅检查输出文件名的正确性和文件格式的合法性而不检查结果的正确性。检查结果显示 在屏幕上。 除非特别指明,输入/输出数据项的顺序与试题描述中的顺序相同。例如,假设试题描述中指明一个输入 /输出行中包含 x 和 y,当没有其他特别说明时,x 出现在 y 之前。 输入和输出文件名必须准确拼写。在 Linux 环境中,文件名是区分字母大小写的。选手需要注意正确使 用文件名的大小写。拼写错误的文件名将使参赛程序无法得分。 竞赛过程 竞赛开始前,各选手的计算机处于开机状态。竞赛试题放在键盘下面的信封中。在竞赛开始的信号发出 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓

▁▂▃▄▅▆▇█▉▊▋▌精诚凝聚 =^_^= 成就梦想 ▁▂▃▄▅▆▇█▉▊▋▌ 前,选手不得打开信封和接触试题,也不得接触计算机和键盘。参加竞赛的选手不得携带软盘、计算器、 参考书及其他用具进入赛场。 在竞赛开始的一个小时之内,参赛选手可以就试题中模糊不清的内容提出疑问。提问应使用专用表格, 一题一表。提问由竞赛科学委员会或其授权人员回答,提问者或其领队不参加问题的讨论。回答内容应是" 是"、"否"、或"无可奉告"。等待答案的时间计算在选手竞赛时间之内,因此在等待答案期间,提问者应该 继续比赛。 比赛期间严禁选手使用寻呼机、移动电话等任何通讯设备,严禁选手直接或间接使用任何计算机网络通 信功能。违反上述规定的选手将被取消参赛资格。 参赛选手在必要时可以要求监考人员提供帮助。监考人员不回答关于竞赛试题的任何问题,而只负责分 发问题表、指示洗手间位置、分发饮料食品、或者处理设备故障。 监考人员将在竞赛结束前 15 分钟和竞赛结束前 3 分钟分别发出提示,提醒参赛选手做好结束竞赛、提交 参赛程序的准备工作。当竞赛结束时,监考人员将发出竞赛结束信号。此时,参赛选手必须停止一切竞赛 活动并离开赛场。 参赛选手离开赛场时可以拿走竞赛试题、草稿纸及信封,但不得从赛场中带走软盘。 当计算机出现不可恢复的故障时,受影响的参赛选手会被允许延长比赛时间,延时的长短将由科学委员 会决定。 备份 在竞赛期间,参赛选手应及时将自己的文件备份,以便当出现设备故障时迅速恢复文件。文件备份应放 在/tmp 目录之下。 评测 评测工作由评测委员会独立完成,领队和参赛选手不参与评审工作。 评测过程是由科学委员会审查批准的评测系统自动完成的。参赛选手的源程序首先被编译生成相应的可 执行程序,然后再通过一系列测试数据进行测试运行。如果被测程序在规定的时间内正常结束(返回值为 0),其输出的结果则被保存起来做进一步的正确性检查,否则就中断测试,输出的结果也不再做进一步检 查。 评测工作以参赛程序的执行结果为准。源代码不作为评测的依据而只被用来生成相应的可执行程序和进 行违禁操作检查。参赛选手应保证其所提交的参赛程序源代码能正确地生成可执行程序。 在评测过程结束时,各参赛队可以获得下面的信息: 参赛选手最终提交的源程序 每道试题的格式检查程序 对于确定性任务的测试数据和正确的输出结果 参赛选手的程序的运行结果 参赛选手的得分表 编程语言环境 评测结果信息是保密的,领队只能获得其所在队参赛选手的评测结果。如果领队或参赛选手对评测结果 有异议,可以填写相应的表格,并在评测结果公布后的三个小时之内提交评测委员会申请复议或复评。当 领队或参赛选手对复议或复评结果仍有异议时, 应提交 NOI 科学委员会仲裁, 并以 NOI 科学委员会的仲裁 结果为该项评测的最终结果。 规则的修改、补充和解释 本规则可由 NOI 科学委员会根据需要和 NOI 组织委员会的授权进行修改和补充。 如有需要, NOI 科学委 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓

▁▂▃▄▅▆▇█▉▊▋▌精诚凝聚 =^_^= 成就梦想 ▁▂▃▄▅▆▇█▉▊▋▌ 员会可在竞赛前发布竞赛技术补充规则或临时规则。本规则以及竞赛技术补充规则或临时规则由 NOI 科学 委员会负责解释。

NOI 科学委员会 2002-7-23

附录 附录 A:一个目录结构的实例 设第一天试题名字的缩写分别是:ring, game 和 city,第二天试题名字的缩写分别是:tree、frog 和 fly。 参赛选手计算机硬盘上的竞赛目录如下: 第一天: ~/day1/ring 第一天的试题 ring. ~/day1/game 第一天的试题 game ~/day1/city 第一天的试题 city 第二天: ~/ day2/tree 第二天的试题 tree ~/ day2/frog 第二天的试题 frog ~/ day2/fly 第二天的试题 fly 附录 B:选手提交参赛程序前的检查要点 当监考人员提示竞赛即将结束时,参赛选手应该根据以下几个方面检查自己的参赛程序: 程序是否按照正确的名称保存在正确的目录下?(其它名称的文件和目录将不被评测) 是否已经关闭程序中用于临时调试的特殊设置和语句? 是否已经将屏幕输出语句删除? 程序的输出文件名是否正确?输出文件内容格式是否合法?

▃ ▄ ▅ ▆ ▇ █ █ ■ ▓点亮心灯 ~~~///(^v^)\\\~~~ 照亮人生 ▃ ▄ ▅ ▆ ▇ █ █ ■ ▓


更多相关标签: