直接递归,计算某一种状态(用一个int32表示)是否必赢,使用缓冲标记为记录已经有答案(标记有未知、必输、必赢三种状态,需2个bit),总共缓冲是 2 * 2 ^(5*5) /8 = 2^22=4M空间。
递归:对于输入的某一状态,如果缓冲中已记录必输或必赢,则返回该结果,否则,尝试所有可行的取法,如果某一取法后的状态(用递归)为必输,则结束尝试,记录缓冲,当前状态为必胜。当所有尝试都已试过,记录到缓冲中当前状态为必输,返回结果。
初始:25位全为0的状态对应的flag值为10,其它为00 (10为必输 01为必赢 00为未知)