先把石堆排序,取出最大的石堆maxi.
由于小紫的操作是机械的,小红的操作是唯一的变量.
那么可以知道,如果小红要取最优策略,她一定想要有更多的主动权,即想要在游戏结束前有更多的轮数,所以最优解策略只会在最后去拿最大堆maxi, 那么小紫唯一可能赢的情况是在第n轮小紫拿走了maxi的最后一个石子
那么小红可以行动的次数最多为maxi-1
只要在maxi-1轮内让除了最大堆以外的所有石子堆为0就可以获胜
注意到:小紫可能会在maxi-1轮内移除一些堆,具体的来说,最多会移除所有小于等于maxi-1的堆。
那么小红只需要在maxi-1次行动中移除堆中石子数量等于maxi的堆就好了,这就是胜利判据。
python解:
t = int(input())
for _ in range(t):
n = int(input())
heaps = list(map(int,input().split()))
heaps.sort()
maxi = heaps[-1]
i = n-2
count = 0
while i>=0:
if heaps[i]==maxi:
count +=1
i-=1
else:
break
if count<=maxi-1:
print('red')
else:
print('purple')

京公网安备 11010502036488号