#1074. shuji的魔法书
shuji的魔法书
题目背景
shuji在充满西方神幻的异世界大陆中发现了一本有神奇能力的魔法书,这本魔法书能够复制别人的魔法并直接使用,于是懒惰的shuji就想直接用敌人的技能来反制给对方,因为shuji有着奥数至尊的被动技能,导致shuji每次所返回的技能都比别人更强,所以shuji只用别人的技能打败对方。但是要想更好的使用魔法书就需要了解这本魔法书的本质使用方式,于是shuji邀请你与他一同探索。
题目描述
这本魔法书的原理很简单,它只是从头到尾,依次将每个魔法用对应的符号含义来替换。对于每个魔法,魔法书会先在每一页中查找这个魔法的符号,如果魔法书中有这个魔法符号,它就会将这个魔法返回给你;如果书中没有,魔法书就会耗费一个魔法石将魔法转化成符号复制进入魔法书中,从而进行储存。
假设魔法书有 页,每一页只能存放一个魔法符号。每当shuji将一个新魔法存入书中,如果当前内存中已存入的魔法数不超过 ,魔法书会耗费一个魔法石将新魔法存入一个未使用的空白页;若魔法书中已存入 个魔法,魔法书会抹去最早存入魔法书的魔法符号,腾出一个空白页来,存放新魔法。
假设在一场战斗中,敌人一共向shuji发出数目为 个魔法。为了打败这些敌人,shuji需要耗费多少的魔法石来进行回击?假设在战斗开始前,魔法书中没有存放任何魔法。
输入格式
共 行。每行中两个数之间用一个空格隔开。
第一行为两个正整数 ,代表魔法书的页数和敌人发出的魔法数。
第二行为 个非负整数,按照敌人发出的魔法的顺序,每个数(大小不超过 )代表一个魔法。当且仅当两个魔法对应的非负整数相同时,他们是相同的魔法。
输出格式
一个整数,为一共需要耗费魔法石的数目。
样例 #1
样例输入 #1
3 7
1 2 1 5 4 4 1
样例输出 #1
5
提示
样例解释
整个战斗过程如下:每行表示用一个魔法进行回击,冒号前为每次攻击后的魔法书中魔法符号的存放情况:
1
:将魔法 1 存入书中并耗费一块魔法石。1 2
:将魔法 2 存入书中并耗费一块魔法石。1 2
:在魔法书中找到魔法 1。1 2 5
:将魔法 5 存入书中并耗费一块魔法石。2 5 4
:将魔法 4 存入书中并耗费一块魔法石同时替代魔法 1。2 5 4
:在魔法书中找到魔法 4。5 4 1
:将魔法 1 存入书中并耗费一块魔法石同时替代魔法 2。
共计使用了 块魔法石。
数据范围
- 对于 的数据有 ,;
- 对于 的数据有 ,。
统计
相关
在下列比赛中: