Loading

HDU-2176 取(m堆)石子游戏

取(m堆)石子游戏

尼姆博弈

同 HDU-1850,我的题解: https://www.cnblogs.com/dgsvygd/p/16270024.html

#include <iostream>
using namespace std;
const int maxn = 2e5 + 10;
int num[maxn];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    while(cin >> n && n)
    {
        for(int i=0; i<n; i++) cin >> num[i];
        int sum = 0;
        for(int i=0; i<n; i++) sum ^= num[i];
        if(sum == 0) cout << "No" << endl;
        else
        {
            cout << "Yes" << endl;
            for(int i=0; i<n; i++)
            {
                int x = sum ^ num[i];
                if(num[i] <= x) continue;
                cout << num[i] << " " << x << endl;
            }
        }
    }
    return 0;
}
posted @ 2022-05-14 14:33  dgsvygd  阅读(21)  评论(0编辑  收藏  举报