P10396 健将青蛙……
题目背景
小青蛙在打破监狱后,注重身体的锻炼。
他成为了一只运动**健将**。
他的故事还在继续……
题目描述
**这是一道提交答案题。**
你的大脑需要被锻炼。
你是一个 bot。你有一个大小为 $300$ 的内存条(下标为 $1\sim 300$),初始时全为 $0$。每个内存条中存储着一个 $32$ 位整数(即 C++ 中的 `int`)。
你需要构造一个网格图,某些网格上的节点有一个指令,机器人根据指令进行操作和移动。
下文把有指令的节点称作特殊节点。
节点上的指令有如下几种:
- 增减:将内存条某个位置上的整数增、减 $1$,并向指定的方向移动一步;
- 比较:比较内存条中下标为 $i,j$ 的数的大小,并根据大小向指定方向移动一步;
- 输入:机器人将从这里出发,并向指定方向移动一步,**该节点不应被重复经过**;
- 输出:机器人到达该节点时结束行动并输出指定位置的值。
**其中输入、输出节点必须存在且唯一。**
任务:
1. 在初始内存条下标 $1,2$ 位置中读入 $a,b$,输出 $a+b$。保证 $0\leq a,b\leq 100$。
2. 在初始内存条下标 $1$ 位置中读入 $a$,输出 $2^a$。保证 $0\leq a\leq 20$。
3. 在初始内存条下标 $1$ 位置中读入 $a$,输出 $a^2$。保证 $1\leq a\leq 1000$。
4. 在初始内存条下标 $1,2$ 位置中读入 $a,b$,输出 $a\oplus b$。保证 $0\leq a,b
输入格式
无
输出格式
无
说明/提示
上述样例给出了一个读入 $a,b$,输出 $\max(a,b)$ 的程序。
------------
评分方式:若你的输出格式错误或给出结果错误,则获得 $0$ 分。否则对于每个测试点,你的得分与 $n\times m$ 的大小有关。每个测试点有 $2$ 个评分参数 $c_1,c_2$,若你的 $n\times m\leq c_1$ 则获得该测试点满分,否则若 $c_1< n\times m\leq c_2$ 则获得该测试点 $60\%$ 分数,否则获得 $40\%$ 的分数。
| Task Id | $c_1 =$ | $c_2 =$ | pts |
| :----------: | :----------: | :----------: | :----------: |
| 1 | $6$ | $9$ | $10$ |
| 2 | $9$ | $12$ | $15$ |
| 3 | $9$ | $10$ | $15$ |
| 4 | $35$ | $48$ | $20$ |
| 5 | $499$ | $999$ | $20$ |
| 6 | $3\times 10^3$ | $3\times 10^5$ | $20$ |
------------
本题下发 `附件.zip` 中含有对解题有帮助的文件。
- `./checker/checker.cpp`,其实现与评测时使用的 `Special Judge` 大致相同,
- `./toy/index.html` 可在浏览器中使用。其为本题的网页版可视化工具,使用方法参见内部的 `instruction`。