2013 ACM/ICPC Asia Regional Changchun Online
-------解题报告
1.HDOJ-4764
题意:
两个人在白纸上写数字,谁先写到比N更大的数(坑点:包括N),谁就输。抽象出来的模型就是,取石子游戏,巴什博奕。巴什博奕的口诀是加一整除,先手必输。在巴什博奕中谁赢了,意味着谁先取到N,在这道题中,谁先取到N-1,谁就是赢家。因为留给对手的只有N,所以他必输!
代码:
int main() { #ifdef LOCAL //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); #endif // LOCAL int N, k; while(cin >> N >> k && N && k) { if ((N - 1) % (k + 1) == 0) cout << "Jiang" << endl; else cout << "Tang" << endl; } return 0; }
注意:用(N-1) % (k + 1) == 0实际上就是加一整除,先手必输,用N-1取代N,表示赢家先取到N-1,这道题的输家就会取N这个数!