class Solution {
public boolean divisorGame(int n) {
//默认值为false
boolean[] flag = new boolean[n + 5];
//N为1时先手必输,N为2时先手必胜(最佳状态)
flag[1] = false;
flag[2] = true;
for (int i = 3; i <= n; i ++) {
for (int j = 1; j < i; j ++) {
//i是N,j是x
//先手的人要选择的数是j,用i-j替换黑板上的数字
//对于后手的人来说,黑板上是i-j,如果flag[i-j]是false,说明后手的人输了
if ((i % j) == 0 && !flag[i - j]) {
flag[i] = true;
break;
}
}
}
return flag[n];
}
}
相关文章
- 10-12牛客练习赛41 A-翻硬币游戏(巧妙博弈)
- 10-12Codeforces 595C-Warrior and Archer(思维博弈)
- 10-12Codeforces 388C Fox and Card Game (贪心博弈)
- 10-12POJ 1740 A New Stone Game(博弈)
- 10-12mongoose+koa2 按照_id更新多条数据,删除数组中的字段,然后添加新的字段,$pull和$or结合使用
- 10-12HDU1517 A Multiplication Game (博弈论+思维)
- 10-12在“BindingNavigator”删除数据前弹出确认框的实现
- 10-12ES删除数据
- 10-12LightOJ 1186 Icreable Chess(Nim博弈)
- 10-12$POJ1704\ Georgia\ and\ Bob$ 博弈论