转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove
题意:给出a ^ b,两个人轮流操作,可以 a + 1 也可以 b + 1,谁先使得a ^ b >= n则输。
由于题目给的n并不大,1e9的范围,如果不考虑a == 1 or b == 1的情况下
a最大为sqrt (n) ,b最大为ln(n) / ln(2)。
所以我们可以处理出所有的a > 1 && b > 1的情况,dp[i][j]表示当前局面为 i ^ j下的输赢情况,记忆化搜索一下。
然后便是考虑特殊情况
如果 a == 1 && b > 1,这种情况可能导致平局,便是两个轮流只在b上操作,导致结果一直为1。
那么我们可以模拟当前是否考虑操作a,由于a > 1 && b &