英文地址:here
本文仅作学习之用,题目的测试用例下载及答案的上传请到上面的英文地址,有不专业或者错误还请指正。
拯救宇宙
问题
都市里传说如果你去Googl的主页并且搜索"Google”,那么宇宙就会爆炸。我们告诉你一个秘密:这是真的!千万不要尝试或者告诉任何人。
好吧,也许不会爆炸。我们开了个玩笑而已。
这在另外一个很远很远的宇宙确实真的。在那个地方,如果你在任何搜索引擎上搜索那个引擎的名字,那么它就会爆炸。
为了与这种情况抗争。人们想到了一个有意思的解决办法。所有的请求被集合起来,然后传送到一个中央系统去决定每个请求用那个搜索引擎。中央系统发送一系列的请求到一个搜索引擎,并能在任何时候切换到另外一个引擎。所有的请求必须按照收到的顺序处理。中央系统一定不能把请求发送到名字与之相同的搜索引擎上。为了降低成本,需要切换的次数为最小。
你的任务是告诉我们中央系统需要在各个搜索引擎之间切换多少次,假设我们已经把中央系统最优化了。
输入
输入文件的第一行是测试用例的数目:N。接下来是N个测试用例。
每个测试用例以一个数字S开始:搜索引擎的数目。接下来的S行,每一行包含一个搜索引擎的名字。每个搜索引擎的名字不超过100个字符并且只包含大小写字母,空格和数字。而且他们不会重名。
接下来是包含一个数字Q的一行:请求的数目。再接下来的Q行每一行包含一个请求。在测试中每个请求都是一个搜索引擎的名字。
输出
对于每一个测试用例,你应该输出:
Case #X: Y
X表示第几个测试用例,Y表示切换搜索引擎的数目。对初始搜索引擎的选择不计算为一个切换。
限制
0 < N <= 20
小数据
2 <= S <= 10
0 <= Q <= 100
大数据
2 <= S <= 100
0 <= Q <= 1000
例子
输入
2
5
Yeehaw
NSM
Dont Ask
B9
Googol
10
Yeehaw
Yeehaw
Googol
B9
Googol
NSM
B9
NSM
Dont Ask
Googol
5
Yeehaw
NSM
Dont Ask
B9
Googol
7
Googol
Dont Ask
NSM
NSM
Yeehaw
Yeehaw
Googol
输出
Case #1: 1
Case #2: 0
在第一个测试中,一个可能的方案是用Dont ask 开始,然后再第8个请求后切换到NSM。
第二个测试,你可以一直用B9而不做任何切换。