zoukankan      html  css  js  c++  java
  • 尼姆博弈的典型例题

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        int i,j;
        int a[100+5];
        int ans,tmp,cnt;
        while(cin>>n&&n)
        {
            for(i=0;i<n;i++) cin>>a[i];
            ans=a[0];
            for(i=1;i<n;i++) ans^=a[i];//求出所有堆的按位与,为后面做准备
            tmp=cnt=0;
            //根据按位与的定义,与a【i】与所有按位与==除a【i】所有的按位与
            //因此只要得到一个理想的值小于这个堆的张数,就一定可以取出如此多张使对方到达必败点
            for(i=0;i<n;i++)
            {
                tmp=ans^a[i];
                if(tmp<a[i]) cnt++;
            }
            cout<<cnt<<endl;
        }
        return 0;
    }
            cout<<cnt<<endl;
        }
        return 0;
    }  

  • 相关阅读:
    P1093 奖学金
    华容道
    回文数
    P1654 OSU!
    Noip P1063 能量项链
    Noip 寻宝
    NOIP 2009 普及组 第三题 细胞分裂
    拦截器
    OGNL
    Struts2 配置详解
  • 原文地址:https://www.cnblogs.com/acalvin/p/3482525.html
Copyright © 2011-2022 走看看