武汉白云黄鹤站∶精华区
发信人: ACMICPC (HUST_ACM2006), 信区: Algorithm
标 题: Astar - 复赛 4.X博士的彩球游戏
发信站: 武汉白云黄鹤站 (2006年06月07日23:47:21 星期三), 站内信件
X博士是一个研究儿童智力开发方法的科学家,他为幼儿教育领域做出了许多贡献。最近,
X博士正在研究一种适合儿童的游戏,用以辅助发展儿童的观察力、注意力和思维能力。经
过连日的构思,X博士终于设计出了一种游戏:彩球游戏。
彩球游戏是一种单人参与的游戏,游戏首先给出一串由许多不同颜色的小球组成的小球序
列,以及一个整数参数M(M≥2)。一段连续的具有相同颜色的小球序列称为连续同色序列
。小孩,即游戏参与者,每次可以向任意一段连续同色序列插入一个同色小球,使该序列
的长度加一。当一段连续同色序列在插入一个同色小球后其长度达到M时,该序列就会爆炸
消失,然后原序列两边的其余小球会重新连成一串,如果两段相同颜色的连续同色序列在
此时连接在一起,它们就会合并形成一段新的连续同色序列。如果新形成的连续同色序列
长度达到M,这段序列也会爆炸消失,然后重复上述过程,直到没有新的长度达到M的连续
同色序列出现为止。游戏的目标很简单,就是插入尽量少的小球,使得所有小球都爆炸消
失掉。
通过长时间的游戏和不断提高游戏水平,这个游戏可以很好地开发儿童的观察力、注意力
和思维能力。但是X博士仍然面临着一个困难的问题,他还需要设计出一个游戏演示AI程序
,可以以最优的方式(即插入的小球数量最小)进行游戏,用于游戏教学,或者在游戏中
对小孩给出提示。X博士并不擅长此类程序,因而他无法完成这个任务,你可以帮助他吗?
输入要求:
输入文件包含多组测试数据。每组测试数据第一行为整数M(2≤M≤20),第二行为一条非
空的字符串,由大写字母组成且长度不超过200,表示初始的一串小球,不同的字母表示不
同的小球颜色。初始时可能会存在一些长度达到M的连续同色序列,但这些序列不会马上爆
炸消失。
输入样例:
3
AAABAAA
3
ABBABBA
3
AAAABCCBBB
样例:in.txt
输出要求:
每组测试数据输出一行,表示至少需要插入多少次小球才能使所有小球爆炸消失掉。
输出样例:
2
2
2
样例:out.txt
评分规则:
程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超
过30秒,否则该用例不得分;
要求程序能按照输入样例的格式读取数据文件,按照输出样例的格式将运行结果输出到标
准输出上。如果不能正确读入数据和输出数据,该题将不得分;
该题共有5个测试数据集,每个测试数据集为一个输入文件,包含多组测试数据。每个测试
数据集从易到难分别为5、10、15、30和40分,对每个测试数据集分别执行一次程序,每次
必须在运行时限30秒内结束程序并输出正确的答案才能得分。
五个测试数据集中输入初始小球队列的长度分别不大于10、20、50、100和200,各有不超
过5000组测试数据。
该题目100分。
--
_ ____ __ __ __ ___ ____ ____ ____
/ / / ___|| // | / /|_ _| / ___|| _ / / ___|
/ _ / | | | |//| | / / | | | | | |_) || |
/ ___ / | |___ | | | | / / | | | |___ | __/ | |___
/_/ /_/ /____||_| |_|/_/ |___| /____||_| /____|
※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·
华中地区网络中心