首页 理论教育 NOILinux系统拍摄技巧-15.4.2版本

NOILinux系统拍摄技巧-15.4.2版本

时间:2023-08-13 理论教育 版权反馈
【摘要】:如果在NOIP复赛中进行对拍,需要在NOI Linux系统下编写正解和暴力求解代码文件ZhengJie.cpp、BaoLi.cpp,再编写好数据生成器代码文件“MakeData.cpp”。在Linux下需要使用shell脚本,文件扩展名为“.sh”。输入输出样例请在NOILinux系统下使用记事本或Vim编译器完成,并在Arbiter系统下进行评测。

NOILinux系统拍摄技巧-15.4.2版本

1.准备对拍代码和编写数据生成器代码

还是以例15-2来进行说明如何在NOILinux操作系统下对此题的两份代码进行对拍。首先NOILinux系统和Windows系统下完成的代码内容是完全相同的,也就是说可以直接将ZhengJie.cpp、BaoLi.cpp和MakeData.cpp复制到Linux虚拟机的共享文件夹中以供测试。为了后续操作的方便,建议在Linux系统中,在桌面建立一个名为“duipai”的新文件夹,将上述三个文件从共享文件夹复制到该文件夹中。

如果在NOIP复赛中进行对拍,需要在NOI Linux系统下编写正解和暴力求解代码文件ZhengJie.cpp、BaoLi.cpp,再编写好数据生成器代码文件“MakeData.cpp”。将这三个文件放入桌面建立的名为“duipai”的文件夹中。

2.进行对拍

操作步骤如下:

(1)对文件ZhengJie.cpp、BaoLi.cpp、MakeDate.cpp进行编译,得到ZhengJie.exe、BaoLi.exe、MakeDate.exe三个可执行文件。注意在之前的章节已经讲过NOIL inux系统下编译需要在终端进行,按下Ctrl+Alt+T组合键打开终端,终端的界面如图15-19所示。进入duipai文件夹目录,按照本章15.2节所述方法进行编译。

(2)编写shell脚本。

在Windows下使用的是批处理程序代码,文件的扩展名是“.bat”。在Linux下需要使用shell脚本,文件扩展名为“.sh”。在duipai文件夹中右击,选择“新建文档”→“空白文档”,并命名为“cmp.sh”,图标为。双击打开“cmp.sh”,输入下面例15-2的shell脚本代码。

例15-2的shell脚本代码

完成脚本代码文件“cmp.sh”后,保存并关闭。此时duipai文件夹中有七个文件,如图15-50所示。

图15-50 Linux对拍执行前状态

(3)打开终端,输入“sh cmp.sh”语句执行脚本,开始对拍,对拍的过程和效果如图15-51所示。

图15-51 终端对拍执行过程

和Windows系统下对拍一样,对拍结束后文件夹中也会生成两个“.out”文件和一个“.in”文件,其功能也和Windows下相同,如图15-52所示。

图15-52 Linux对拍执行后状态

一、单项选择题

1.使用Vim进行编辑代码时,首先需要切换到输入模式,按下键盘上的( )键,可以由命令模式切换到输入模式。

A.A键 B.I键 C.O键 D.以上按键都可以

2.在Vim的末行模式下,可以进行( )的操作。

A.控制光标移动 B.保存或退出文档

C.文本录入 D.对文本进行复制(www.xing528.com)

3.在使用Arbiter评测系统进行评测时,( )操作是错误的,会导致评测失败。

A.输出数据的扩展名为problemX.out

B.打开players文件夹,为每位选手创建一个代码文件夹

C.选手编号和players文件夹中的选手编号完全一致

D.在开始评测前先保存题目设置

二.程序设计题

1.奖学金(NOIP普及组2007)

题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:

7 279

5 279

这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:

5 279

7 279

则按输出错误处理,不能得分。

输入格式

共n+1行。

第1行为一个正整数n(n≤300),表示该校参加评选的学生人数。

第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0~100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1到n(恰好是输入数据的行号减1)。

输出格式

共5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。

输入输出样例

请在NOILinux系统下使用记事本或Vim编译器完成,并在Arbiter系统下进行评测。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈