logo AlgoBeat OnlineJudge
登录 注册

#212657. 旷野小计算

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

原题来自 2025 年洛谷愚人节比赛E 题


提示:若是使用“提交代码”的方式进行提交,在评测时会给程序输入一个数字(1, 2, 3, ..., 7)表示测试点编号,请在程序中直接输出对应测试点的答案。


关于什么是寄存器:理解成变量即可。

您需要编写指令,完成给定的计算任务。

在以下指令中,小写字母 v 开头的参数表示十进制无符号常数,大写字母 R 开头的参数表示寄存器。寄存器均为 64 位无符号整数。您可以自由使用的寄存器有六个:abcdxy。除非特别说明,否则所有寄存器初始值均为

指令格式 描述
+ R1 R2 使 R1 寄存器加上 R2 的值
- R1 R2 使 R1 寄存器减去 R2 的值
< R1 v 使 R1 寄存器左移 位,低位补 0
> R1 v 使 R1 寄存器右移 位,高位补 0
^ R1 R2 使 R1 寄存器异或上 R2 的值
! R1 输出 R1 寄存器的值
= R1 v 使 R1 寄存器的值变为
* R1 R2 使 R1 寄存器乘上 R2 的值
/ R1 R2 使 R1 寄存器除以 R2 的值
编号 输入方式 任务 PC 数限制 特殊条件 分值
1 寄存器 x 里保存 输出
2 输出 (下取整) 在 32 位无符号整数范围内
3 输出 保证 不为
4 寄存器 xy 里保存 输出 的值 答案自然溢出即可(即对 取模)
5 输出 的值 (下取整) 在 32 位无符号整数范围内,保证 不为
6 寄存器 x 里保存 输出 的值 (下取整)
7 输出大于等于 的最小的 的次幂 保证 不为 且答案在 64 位无符号整数范围内

输入格式

一行一个整数,表示任务编号。

输出格式

若干行,一行一条指令。指令格式如题干所述。

为了方便有基础的选手更清晰地阅读代码,除了按照题干所述的方式书写指令,允许使用助记符格式。

指令格式 助记符格式 寄存器名 助记符格式
+ R1 R2 add R1, R2 a rax
- R1 R2 sub R1, R2 b rbx
< R1 v shl R1, v c rcx
> R1 v shr R1, v d rdx
^ R1 R2 xor R1, R2 x rsi
! R1 write R1 y rdi
= R1 v movabs R1, v
* R1 R2 mul R1, R2
/ R1 R2 div R1, R2

另外,可使用英文分号 ; 书写单行注释,如:

xor rax, rax    ; set rax to 0

样例

样例输入 1

1

样例输出 1

见附件 sample1.txt

样例输入 2

3

样例输出 2

= a 4080
! a

数据范围与提示

请注意:

  • 程序的大小非常关键,运行的指令条数超过了 PC 数限制就会扣除分数。PC 数限制 表示:

    • 当运行的指令条数 时,获得该测试点的全部分数;
    • 当运行的指令条数 时,不得分;
    • 当运行的指令条数 时,获得该测试点 的分数(即:线性衰减)。
  • 常数、乘法、除法指令(即表格中后三条指令)是非常昂贵的,使用了就会扣除所有的分数。

因此,两个样例的输出实际均不能得到分数。

附件提供 chk.exe,供交互式运行指令,输入单条指令回车后即可运行。为方便给寄存器赋值,额外提供指令(评测机内不识别该指令):

指令格式 助记符格式 说明
? R1 read R1 从标准输入读入一个 64 位无符号整数,保存到 R1 寄存器中