人力资源机器7-12满星攻略
我忘了这件事了,诶嘿o( ̄▽ ̄)d
第7层-零之杀手
新指令!
jump if zero
:仅在你拿着零的时候跳转,否则继续执行下一行
AK代码
当输入不为0的时候输出,否则抛弃它。
1 | -- HUMAN RESOURCE MACHINE PROGRAM -- |
第8层-三倍扩大室
这是一个分支关卡
AK代码
既然是input×3,虽然我们没有乘法器,不过只需要input+input+input就可以了!1
2
3
4
5
6
7
8
9
10
11
12-- HUMAN RESOURCE MACHINE PROGRAM --
a:
INBOX
COPYTO 0
ADD 0
ADD 0
OUTBOX
JUMP a
第9层-保护零行动
挑战体积
挑战体积很简单,就是最朴素的思路写上去1
2
3
4
5
6
7
8
9
10
11
12
13-- HUMAN RESOURCE MACHINE PROGRAM --
a:
b:
INBOX
JUMPZ c
JUMP b
c:
OUTBOX
JUMP a
挑战速度
挑战速度这里要玄学优化一下:在朴素解法里,我们的做法是每次outbox
后立刻jump
到最开始的inbox
去,一般来说没什么问题(只是能满足需求而已),如果遇到了两个0连着输入,就会浪费效率。实际上我们可以在outbox
之后立刻inbox
一下,然后按照之前对输入数据的处理方法处理它就好。运行时将会在两个inbox的逗留之间来回切换。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16-- HUMAN RESOURCE MACHINE PROGRAM --
a:
b:
INBOX
JUMPZ c
JUMP b
c:
d:
OUTBOX
INBOX
JUMPZ d
JUMP a
第10层-八倍扩大器事件
AK代码
inbox * 8 =
inbox += inbox
inbox += inbox
inbox += inbox;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15-- HUMAN RESOURCE MACHINE PROGRAM --
a:
INBOX
COPYTO 0
ADD 0
COPYTO 0
ADD 0
COPYTO 0
ADD 0
OUTBOX
JUMP a
第11层-Sub走廊
新指令!
sub
:无论你手上拿着什么值都会将地板上指定地砖的内容减去你手中的值,结果再回到你手中。
AK代码
直接朴素解法1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16-- HUMAN RESOURCE MACHINE PROGRAM --
a:
INBOX
COPYTO 0
INBOX
COPYTO 1
SUB 0
OUTBOX
COPYFROM 0
SUB 1
OUTBOX
JUMP a
第12层-四十倍扩大器
AK代码
input40=input8*5
所以我们先作八倍扩大,再自己加自己4次就可以了。14条指令56步,刚好满足全部要求。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20-- HUMAN RESOURCE MACHINE PROGRAM --
a:
INBOX
COPYTO 0
ADD 0
COPYTO 0
ADD 0
COPYTO 0
ADD 0
COPYTO 0
ADD 0
ADD 0
ADD 0
ADD 0
OUTBOX
JUMP a
人力资源机器7-12满星攻略