随着人类计算机技术的发展,计算机的能力不断提升,让跳蚤国王非常羡慕。
终于有一天,跳蚤国王发布政令:大力发展跳蚤国的计算机产业!然而,跳蚤国尚未进行工业革命,无法制造出电子计算机所需的元器件。但是跳蚤国王想出了一个绝妙的想法:把每只跳蚤作为一个计算节点,每只跳蚤只完成一个特定的小任务。
跳蚤国王带领
记第
名称 | 操作符(类型) | 操作数 | 计算结果 |
---|---|---|---|
输入节点 | I | 无 | 从终端读入一个实数作为 |
输出节点 | O | ||
加法节点 | + | ||
偏移节点 | C | ||
取反节点 | - | ||
左移节点 | < | ||
右移节点 | > | ||
S型节点 | S | ||
比较节点 | P | ||
Max节点 | M | ||
乘法节点 | * |
其中,
上述表格中的操作数
把跳蚤排列好后,野心勃勃的跳蚤国王决心测试一下这台由跳蚤组成的计算机的计算能力,于是蝈蝈大臣给跳蚤国王献上了
编号 | 输入 | 输入限制 | 输出 |
---|---|---|---|
1 | 小数部分不超过 | ||
2 | 小数部分不超过 | ||
3 | 小数部分不超过 | ||
4 | 小数部分不超过 | ||
5 | 把 | ||
6 | 输出 | ||
7 | |||
8 | 小数部分不超过 | ||
9 | 小数部分不超过 | 输出 | |
10 |
跳蚤国王发现自己没有足够的能力设计这样的计算机。于是他找到了来参加 NOI 的你。请你依次设计每个计算节点的类型及操作数,完成蝈蝈大臣给的这
输入格式
所有输入数据 nodes1.in~nodes10.in 见数据下载,分别对应
每组输入数据仅包含一个整数,表示需要解决的计算任务编号。
输出格式
输出文件为 nodes1.out~nodes10.out,分别对应相应的输入文件。
对于每组输入数据,你需要依次输出若干行,第
描述每个计算节点时,首先一个字符表示该计算节点的类型,接下来若干个数按顺序表示该计算节点的内置参数。字符与数,数与数之间均用空格隔开。
输出的行数不能超过
样例一
input
1
output
I + 1 1 - 2 I + 4 4 - 5 + 3 6 - 7 - 8 O 9
explanation
该样例输出为第一个计算任务一个可能的构造。共用了
子任务及部分分
我们提供了十个评分文件 nodes1.ans~nodes10.ans,分别对应每个计算任务。
每个评分文件共 10 行,第 i 行一个评分参数
本题中,每个测试点单独进行评分,每个测试点
如果选手的输出格式不合法或者参数不符合题目约定,则得
否则,按照以下规则判定选手的输出是否正确:
首先测评器会生成若干组输入数据,并将输入数据代入你构造的计算机。
如果在代入某一组输入数据时:你构造的计算机的计算过程中,某个计算节点的计算结果的绝对值超过
否则,我们认为你的计算机能完成给定的计算任务,并按照以下规则得分。
对于每个测试点,我们设置了
假设共使用了
得分 | 条件 | 得分 | 条件 |
---|---|---|---|
若不符合表中所有条件,得 0 分;若符合表中的多个条件,则取分数最高的。
除此之外,使用比较节点、Max 节点和乘法节点的代价是极为昂贵的。因此,这三种节点每使用一种,就会从你这个测试点的得分中倒扣 4 分。
注意这里是按使用节点的种类数计算扣分,与使用次数无关。例如多次使用比较节点,只会扣除
一个测试点至多被扣到
如何测试你的输出
在终端中先切换到该试题的目录下:(windows用户请使用cmd)(假设你把输入输出文件、checker 什么的都放在了 nodes 这个文件夹下)
cd nodes
我们提供checker这个工具来测试你的输出文件是否是可接受的。使用这个工具的方法是,在终端中运行
./checker_linux64 <case_no>
其中case_no
是测试数据的编号。例如
./checker_linux64 3
将测试 nodes3.out 是否可以接受。(windows用户请使用checker_win32 3
)(什么你是windows 64位?放心吧可以运行win32应用程序的。)
当然我们有对应的 linux 32 位版本:checker_linux32
。如果 linux 用户发现无法运行程序,请尝试执行 chmod +x checker_linux64
或 chmod +x checker_linux32
后重试。
其它操作系统请安装 node.js 然后使用 node checker.js <case_no>
运行checker。
在你调用这个程序后,checker 将根据你给出的输出文件给出测试的结果。
另外,你还可以在终端中使用命令
./checker –f <file_name>
来运行 <file_name>
表示的计算机,并通过终端进行交互。
注意: checker 测试你构造的计算机时,使用的数据跟最终测试时可能不同。