• 栗酱的异或和


    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 131072K,其他语言262144K
    64bit IO Format: %lld

    题目描述

            栗酱特别喜欢玩石子游戏,就是两个人玩,有n堆石子,每堆有ai个,每次一个人可以轮流选择任意一堆,取走任意多的石子(但不能不取),谁先不能取谁输。
            栗酱觉得这个游戏很有趣,知道有一天,小太阳告诉她,其实如果两个人足够聪明,游戏的结局一开始就已经注定。
            栗酱是一个冰雪聪明的女孩子,她不相信,希望你演示给她看。

    输入描述:

    多组数据,数据第一行T表示数据组数。
    每组数据第一行一个n,k表示一共有n堆石子,接下来你试图从第k堆开始取,从第二行开始,每隔一个空格一个第i堆石子的数量ai。
    n≤105,  ai≤109

    输出描述:

    输出“Yes”或“No”代表从该堆开始取是否可以必胜(如果足够聪明)。
    示例1

    输入

    2
    3 2
    1 2 3
    2 1
    2 1

    输出

    No
    Yes

    说明

    小太阳哥哥说,如果想赢,就试图把每堆石子数量的异或和变为0,最终便可以获得胜利,不相信自己证一下。

    备注:

    小数据较多,不要使用memset,可能导致TLE。

    AC代码:
    #include<iostream>
    using namespace std;
    int a[100005];
    int main()
    {
        ios::sync_with_stdio(false);
        int T;
        cin>>T;
        while(T--)
        {
            int n,k;
            cin>>n>>k;
            int ans=0;
            for(int i=1;i<=n;i++)
            {
                cin>>a[i];
                ans=ans^a[i];
            }
            int num=0;
            if((ans^a[k])<a[k])
                ++num;
            if(num==0)
                cout<<"No"<<endl;
            else
                cout<<"Yes"<<endl;
        }
        return 0;
    } 

    今天也是元气满满的一天!good luck!

  • 相关阅读:
    8.池化内存分配
    7.netty内存管理-ByteBuf
    6.ChannelPipeline
    5.接入客户端连接
    4.Netty执行IO事件和非IO任务
    3.NioEventLoop的启动和执行
    2.NioEventLoop的创建
    1.netty服务端的创建
    微信订阅号开发初探
    jmeter自动化脚本编写
  • 原文地址:https://www.cnblogs.com/cattree/p/8047426.html
Copyright © 2020-2023  润新知