#P7183. [CRCI2008-2009] NOP
[CRCI2008-2009] NOP
题目描述
Mirko 购买了新的微处理器。
不幸的是,他发现为旧处理器编写的许多程序在新处理器上无法运行。
在深入了解这两种处理器说明书后,他发现了原因。
为了更快地工作,新处理器对程序的机器代码施加了某些约束,而这些约束在以前的模型中是不存在的。
处理器的机器代码由顺序执行的指令组成。 每个指令使用一个字节的存储器。
同样,指令可以具有 个或多个参数,每个参数都使用一个额外的内存字节。在机器代码中,参数紧随指令之后。
当设置为文本格式时,机器代码指令为大写字母,而参数为小写字母。 例如:
该程序由四个指令组成:第 个使用三个参数,第 个使用两个参数,第 个不使用,第四个使用四个参数。 该程序使用 个字节的内存。
新的处理器模型以四字节的块为单位获取内存,因此每条指令必须从可被四整除的内存地址开始(内存中的第一个字节为地址 )。
我们可以将 NOP
(No Operation,即无操作)指令插入旧程序中,这些指令不执行任何操作。
指令 ,, 和 现在位于内存位置 、、 和 ,这满足了处理器的约束。
请你编程求出最少需要插入的 NOP
数量。
输入格式
一行一个字符串 ,表示旧处理器模型编写的程序的机器代码。
该程序将始终以 条指令开始,即机器码中的第一个大写字母。 如果一条指令在机器代码中多次出现,则它将始终使用相同数量的参数。
输出格式
一行一个正整数 ,表示最少需要插入的 NOP
数量。
Abcd
0
EaEbFabG
5
AbcbBccCDefgh
4
提示
数据规模及约定
令 为字符串 的字符数,对于 的数据,。
说明
- 本题满分 分。
- 本题译自 COCI2008-2009 CRCI2008-2009 NOP,译者 https://www.luogu.com.cn/user/219791