zoukankan      html  css  js  c++  java
  • 【POJ】1704.Georgia and Bob

    题解

    感觉挺神奇的
    我们把石子从后往前相邻的两个两两配对,这样他们之间的空格就相当于一堆石子
    而配对后左边棋子移动,右边棋子也一定可以跟上取

    转化成简单的nim游戏,最后只要看转化出的这(N - 1)/2 + 1堆石子异或起来等于0

    代码

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    //#define ivorysi
    #define MAXN 1005
    #define eps 1e-8
    using namespace std;
    typedef long long int64;
    typedef double db;
    int N,T;
    int a[MAXN];
    void Solve() {
        scanf("%d",&N);
        for(int i = 1 ; i <= N ; ++i) {
    	scanf("%d",&a[i]);
        }
        sort(a + 1,a + N + 1);
        int ans = 0;
        for(int i = N ; i >= 1 ; i -= 2) {
    	ans ^= a[i] - a[i - 1] - 1;
        }
        if(!ans) puts("Bob will win");
        else puts("Georgia will win");
    }
    int main() {
    #ifdef ivorysi
        freopen("f1.in","r",stdin);
    #endif
        scanf("%d",&T);
        while(T--) {
    	Solve();
        }
    }
    
  • 相关阅读:
    PKU 3984 迷宫问题
    九度 1341 艾薇儿的演唱会
    九度 1335
    SDUT 1198 鞍点计算
    POJ 1363 Rails
    SDUT 1570 C旅行
    HDU 1042 N!
    SDUT 1568 俄罗斯方块
    HDU 1257 最少拦截系统
    POJ 3750 小孩报数问题
  • 原文地址:https://www.cnblogs.com/ivorysi/p/9040729.html
Copyright © 2011-2022 走看看