seo如何提高排名seo自然排名優(yōu)化
臺(tái)階型Nim游戲
題目
https://www.acwing.com/problem/content/894/
現(xiàn)在,有一個(gè) n n n 級(jí)臺(tái)階的樓梯,每級(jí)臺(tái)階上都有若干個(gè)石子,其中第 i i i 級(jí)臺(tái)階上有 a i a_i ai? 個(gè)石子( i ≥ 1 i \ge 1 i≥1)。
兩位玩家輪流操作,每次操作可以從任意一級(jí)臺(tái)階上拿若干個(gè)石子放到下一級(jí)臺(tái)階中(不能不拿)。
已經(jīng)拿到地面上的石子不能再拿,最后無法進(jìn)行操作的人視為失敗。
問如果兩人都采用最優(yōu)策略,先手是否必勝。
輸入格式
第一行包含整數(shù) n n n。
第二行包含 n n n 個(gè)整數(shù),其中第 i i i 個(gè)整數(shù)表示第 i i i 級(jí)臺(tái)階上的石子數(shù) a i a_i ai?。
輸出格式
如果先手方必勝,則輸出 Yes
。
否則,輸出 No
。
數(shù)據(jù)范圍
1 ≤ n ≤ 1 0 5 1 \le n \le 10^5 1≤n≤105,
1 ≤ a i ≤ 1 0 9 1 \le a_i \le 10^9 1≤ai?≤109
輸入樣例:
3
2 1 3
輸出樣例:
Yes
思路
將奇數(shù)位置上面的數(shù)看成是Nim游戲即可,
必勝狀態(tài) a 1 ∧ a 3 . . . ∧ a n ! = 0 a_1 \land a_3 ...\land a_n!=0 a1?∧a3?...∧an?!=0
代碼
#include <bits/stdc++.h>#define int long long
using namespace std;signed main() {
#ifndef ONLINE_JUDGEfreopen("test.in", "r", stdin);freopen("test.out", "w", stdout);
#endifint n, res = 0, x;cin >> n;for (int i = 1; i <= n; ++i) {cin >> x;if (i & 1) res ^= x;}cout << (res ? "Yes" : "No") << endl;return 0;
}