甲乙两个人用一个英语单词玩游戏。两个人轮流进行,每个人每次从中删掉任意一个字母,如果剩余的字母序列是严格单调递增的(按字典序a < b < c <....<z),则这个人胜利。两个人都足够聪明(即如果有赢的方案,都不会选输的方案 ),甲先开始,问他能赢么?
输入: 一连串英文小写字母,长度不超过15,保证最开始的状态不是一个严格单增的序列。
例如: 输入 bad, 则甲可以删掉b或者a,剩余的是ad或者bd,他就赢了,输出1。
又如: 输入 aaa, 则甲只能删掉1个a,乙删掉一个a,剩余1个a,乙获胜,输出0。
个人比较欠缺博弈知识,所以初步说下自己的思路。
首先,输入字符是随机的唯一要求就是不能是单增的。换而言之就是说,不会出现甲随便拿掉任何一个字母就赢的这种情况。
这时甲会先搜索整个数组,如果当下无法在第一次里面决定胜负,那么他一定要不能让乙获胜赢了。同理乙也是这么想的。
如果字符串是偶数个的话,抽到最后是甲获胜。
反之是乙获胜。这是我目前终结出来的资料。我但是我知道这些东西却依然没有办法去构建我的算法。希望得到大伙的帮助
输入: 一连串英文小写字母,长度不超过15,保证最开始的状态不是一个严格单增的序列。
例如: 输入 bad, 则甲可以删掉b或者a,剩余的是ad或者bd,他就赢了,输出1。
又如: 输入 aaa, 则甲只能删掉1个a,乙删掉一个a,剩余1个a,乙获胜,输出0。
个人比较欠缺博弈知识,所以初步说下自己的思路。
首先,输入字符是随机的唯一要求就是不能是单增的。换而言之就是说,不会出现甲随便拿掉任何一个字母就赢的这种情况。
这时甲会先搜索整个数组,如果当下无法在第一次里面决定胜负,那么他一定要不能让乙获胜赢了。同理乙也是这么想的。
如果字符串是偶数个的话,抽到最后是甲获胜。
反之是乙获胜。这是我目前终结出来的资料。我但是我知道这些东西却依然没有办法去构建我的算法。希望得到大伙的帮助