#P9931. [NFLSPC #6] 挑战停机问题
[NFLSPC #6] 挑战停机问题
题目背景
作为新时代的 OIer/XCPCer,你已经不满足于挑战 NPC 问题了。你想挑战数学的不可判定性——图灵停机问题。
题目描述
图灵给了你一个程序。程序开始运行之初,有且仅有一个变量 ,初始值为 。程序共有 行,行号为 ,每行是如下几种形式之一:
A a
:令 ,然后执行下一行。G x
:执行第 行。I l r x y
:如果 则执行第 行,否则执行第 行。E
:直接结束程序。
保证最后一行是 E
。
图灵希望你判断这个程序从第一行开始执行会不会结束。为了进一步检验你到底是不是真的会判定停机问题(还是装的?),图灵还要求你给出 最终的值,如果程序不会结束且不存在一个时刻使得在其以后 不再变化,则输出 @Turing ?
。
输入格式
本题多测。第一行一个正整数 表示数据组数,对于每组数据:
- 第一行一个整数 ,表示程序的行数。
- 接下来 行,描述程序。
输出格式
对于每个询问,输出两行:
- 第一行一个字符串
Yes
或No
,表示程序是否会结束。 - 第二行一个整数 或字符串
@Turing ?
,表示 最终的值。
3
5
I 1 7 1 3
G 4
A 2
G 2
E
6
A 2
I 2 3 5 1
E
G 4
A 1
E
4
A 1
G 1
E
E
No
2
Yes
3
No
@Turing ?
提示
对于所有数据,,,,,。保证输入涉及到的所有数字都是整数。
- 子任务 1(15 分):不存在
I
类语句。 - 子任务 2(20 分):。
- 子任务 3(40 分):。
- 子任务 4(25 分):无特殊限制。
Source:NFLSPC #6 G by chenxia25