一道编程题,请用C++ ,有较大难度,所以暂时给20分,如果能解决,我再给50~100分

【问题描述】
农夫约翰(Farmer John)的奶牛们平时喜好一起学习英文单词。奶牛Bessie是其中最聪明的牛,她发明了一个游戏,叫做《单词争霸》。
这个游戏是由两个人来玩,两人轮流进行。轮到每个人时,他要说出一个正确的单词(即字典中的单词),要求这个单词在之前没有被他或他的对手说过,并且这个单词不是之前他或他的对手说过的某个单词的前缀。如果轮到一个人,他无法说出这样的单词,那么他被判败。
显然,拥有词汇量较多的奶牛玩起这个游戏来更有优势,因为他有更多的单词可以说。这样,奶牛们天天玩这个游戏,他们的词汇量越来越大……
直到有一天,Bessie发现他们已经把世界上所有的英文单词学会了,因此她再也无法依赖自己较大的词汇量取胜了。她是记忆单词的天才,但并不是游戏好手,所以她来请教聪明的你。
她告诉你,这个世界上一共有N个英文单词,每个单词的长度不超过maxLen。她将这些单词按字典序排列,并输入。她想知道如果她是先手,那么她是否能取得胜利。
你需要做的是,判断在给定字典的情况下,先手是否有必胜策略。如果没有,那么告诉Bessie:“Can’t win at all!!”,否则,你需要确定先手在第一回合可以说出哪些单词,为了让Bessie多一些思考的乐趣,你决定不把这些单词一一列举。你把这些单词按某个排列连接起来,组成一个大的字符串,当然,不同的排列可能得到不同的串,你要告诉Bessie那个字典序最先的串,记作answerString。
为了使输出更加美观,如果那个串的长度大于50,你要分行输出,除了最后一行以外,其他行每行50个字符,最后一行不多于50个字符。

【输入格式】
输入的第一行包含两个整数,N和maxLen,用一个空格隔开。
接下来的N行,每行为一个长度不大于maxLen的字符串。

【输出格式】
按题目描述中的要求输出:
可能为一行,“Can’t win at all!!”(不包含引号)
或者多行,除了最后一行之外每行50个字符,最后一行不超过50个字符,将所有行的字符连接起来是answerString。

【样例输入1】
2 9
word
wordcraft

【样例输出1】
wordcraft

【样例1解释】
先手说出单词“wordcraft”之后,后手没有单词可说,因为单词“word”是单词“wordcraft”的子串。

【样例输入2】
5 9
ac
car
care
careful
carefully

【样例输出2】
careful

【样例2解释】
先手说“careful”之后,后手只能说“ac”或者“carefully”。如果他说了前者,那么先手说后者;反之,如果他说了后者,那先手说前者。之后,后手都将无单词可说。

【样例输入3】
2 100
noonecansolvethisproblem
thisproblemisverydifficult

【样例输出3】
Can’t win at all!!

【样例输入4】
9 8
theworda
thewordb
thewordc
thewordd
theworde
thewordf
thewordg
thewordh
thewordi

【样例输出4】
thewordathewordbthewordctheworddthewordethewordfth
ewordgthewordhthewordi

【数据范围】
输入数据中的所有单词均由小写字母构成。
输入数据保证所有单词按字典序排列。
输入数据保证所有单词互不相同。

10%的数据中N≤20,maxLen≤20;
30%的数据中N≤500,maxLen≤50;
50%的数据中N≤2000,maxLen≤50;
70%的数据中N≤5000,maxLen≤100;
100%的数据中N≤100000,maxLen≤100。

第1个回答  2010-12-13
我保存下来 有时间看看 还有十四天关闭 。
第2个回答  2010-12-14
真深奥?
第3个回答  2010-12-17
毛阿姨的助教好蛋疼啊本回答被提问者采纳
第4个回答  2010-12-13
确实有点难度本回答被网友采纳

一道编程题,请用C++ ,有较大难度,所以暂时给20分,如果能解决,我再给...
我保存下来 有时间看看 还有十四天关闭 。

高中学习遇到难题时,应该一直思考还是去理解答案?
那种很有困难的题,一般思考一道题30分钟的时间还是可以的,如果是相对没那么复杂的可以适当减少思考时间,比如15分钟等。如果还是想不出来,建议去询问老师,让老师讲解,老师在讲解的时候也能够延伸到同类型的题中,不要想着只是自己看答案,如果答案中有一些公式是你不记得的,询问老师的方式能够很好地...

为什么好多人在百度上提问题,别人给了答案后还不处理(都过期了)?_百度...
3. 提高悬赏:提高悬赏分,以提高问题的关注度,此时: 1)系统自动延长该问题的有效期 3 天; 2)如果您一次追加悬赏 20 分以上(含 20 分),系统会将问题在所在分类的“待解决问题”列表中显示为最新,类似于新提出的问题。 4. 举行投票:不知道哪个回答最好时,可让网友投票来选出最佳...

有经验的文科考生请进 200分求助...
去年4.2号谈了5年的女朋友把我甩拉, 4月5号的时候学校组织的模考成绩也出来了---文综97分(300分制) 语文70多分 英语30多分 数学12分 总分217分,意料之中; 于是我制定了一个计划,仅仅靠20天,每天各科一个单元这样学习。英语靠每天背200~300个单词,早上8点钟睡觉,10点钟左右就起来了。20天下来(我是在家...

谁能给我解决这些问题我给350分,说到做到
谢谢各位大侠,帮小弟解决问题,如果解决得好,我给350分,如果复制或者没人把问题给小弟解决好,小弟宁可丢350分不好意思,百度提问的悬赏上限好像只有200分,不过谁如果给我把我的问题解决飘亮了我一定想办法再给150分 ,我希望能得到很好的一个解决方案 展开  我来答 123个回答 #热议# 怎么买保险?答案全在...

帮忙找几道名著题,谢了
2、某出版社要出一套“中学生喜爱的中外名作”丛书,请你从下面列出的篇目中选择一部(篇)推荐给出版社,并写出推荐理由。(北京海淀区) 《背影》 《西游记》 《从百草园到三味书屋》 《热爱生命》《汤姆·索亚历险记》《“诺曼底”号遇难记》 3、名著阅读填空。(任选三题,如四题都答,按前三题记分)(6分)(大...

100分的问题,答对追加到200再给50
你问这个想干嘛?你要当总经理,现在就可以来我们公司,我们公司这个位子正好缺人;你要做演员,我有朋友做导演的,也可以帮你;你要做国家元首,我爸就是高级公务员,也可以帮你;至于你要做王子,不好意思,无法帮你了。

我把我所有的分都拿出来了,大家救救我吧,该放手还是该继续
谁对谁错也分不清了,我们就象描黑的档案,蛮难经得起其他恋人一样的矛盾,而且我觉得我不想为了她放弃我的烟,我的CS,但是我会把优先级排在她后面,她也不会放弃有街逛优先于单独相处(这只是举个例子)毕竟快三年了,各自都付出和牺牲了很多,我怕放手后很难再投入到新的感情里去,而不放手我怕我们都不能为彼此...

今天晚上放学课是数学,我们考了试,我有好几题不会做,都是瞎写的,交上 ...
【1.英语】英语是我初高中时候最有把握的一门课,在高手如林的重点高中,英语卷面成绩第一总能帮我拉一拉总分,所以我们先给你讲讲高中英语的学习吧。只要你真的花时间了,肯定可以较快提高。A.阅读:坚持每天做阅读理解,做上一两个月,每天都做,每天测时,提高速度和正确率。那么,我想在这个月内提高英语阅读理解...

数学问题啊。。。请各位耐心看完,有好的我会加分、
我觉得你的问题是基础可能不太扎实,数学概念定义理解含糊,知识点之间的关系没有串联起来。就拿导数来说吧,其实也很简单,就是直线的斜率,曲线的切线斜率。没有什么,学了导数,你就多了一种求斜率得手段方法而已。就如你在小学是用算数方法解应用题,在中学用方程、方程组等去解,数学说到底只是一...

相似回答