1016: OOXX
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 12 Solved: 9
[ Submit][ Status][ Web Board]
Description
OOXX是很神奇的哦~话说这是一项人见人爱,花见花开的二人活动,多在室内,户外比较少……
呃……上面和下面没有任何关系……
话说有三个字符串,第一个字符串只有O和X,第二个和第三个字符串为空。
有如下操作:
操作1是将A的最左边的字符移除,接在字符串B的后面
操作2是将A的最左边的字符移除,接在字符串C的后面
操作3是将B的最左边的字符移除,接在字符串A的后面
操作4是将C的最左边的字符移除,接在字符串A的后面
给出起始的A的字符串,和希望得到的字符串S,问将字符串A通过上述变换得到字符串S最少需要多少次操作。要求最后得到的字符串S一定要装在字符串A中。
例如起始字符串为OOXXOX,最后字符串为XOXOXO,那么至少需要变换6次
A=OOXXOX B= C=
1.A=OXXOX B=O C= 操作1
2.A=XXOX B=O C=O 操作2
3.A=XOX B=O C=OX 操作2
4.A=XOXO B=O C=X 操作4
5.A=XOXOX B=O C= 操作4
6.A=XOXOXO B= C= 操作3
Input
第一行输入一个数n,表示字符串长度。第二三行输入两个字符串A和S。每个字符串都只含有X和O,保证两个字符串X的个数和O的个数对应相等。其中n<=1000。
Output
对于每个测试数据输出一个数,表示最少操作次数,每个输出占一行。
Sample Input
6 OOXXOX XOXOXO 7 OOOXXOO OOOXXOO
Sample Output
6 0
HINT
该活动是在本子上玩的五子棋游戏,由于习惯一方用O,一方用X,故别名OOXX。
Source
分析:要理解始终是可能的,而且因为有两个临时串,又只有两个字母,所以可以实现任意变形,所以就可以理解只要取最长的前缀能和后缀重合即可。。。