CF 768E Game of Stones 发表于 2021-02-04 分类于 OI & ACM 阅读次数: 本文字数: 571 阅读时长 ≈ 1 分钟 题目描述https://codeforces.com/problemset/problem/768/E Solution注意到如果我们每次都拿最少的直到不能拿为止,那么我们能够得到一堆石子的最多操作次数 然后我们能够注意到一到这些步都能做到,那么它的 $sg$ 就是最多操作次数 1234567891011121314151617181920212223#include <iostream>#include <cstdio>#include <cmath>#define ll long long using namespace std;int n, m; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> n; int ans = 0; for (int i = 1; i <= n; ++i) { ll x, v; cin >> x; v = sqrt(x * 2); if (x >= v * (v + 1) / 2) ans ^= v; else ans ^= v - 1; } cout << (ans ? "NO" : "YES") << "\n"; return 0;}