zoukankan      html  css  js  c++  java
  • 【题解】Luogu P3480 [POI2009] KAM-Pebbles 阶梯Nim

    你得先看懂题。。。好的我知道只有我没看懂

    并不是把所有的数都去完为胜,而是要求每次取完都要满足a[i]≤a[i+1]的条件下,最后一个能取的人胜

    对于

    3
    1 2 4

    比如取2中的一个1

    差分数组就由 1,2 变成了0,3

    是不是相当于把第i项加到了第i+1项上

    这东西有点眼熟,像不像阶梯nim,只是把i-1变成了i+1

    所以我们就成功把这个问题转化为了,反着的阶梯nim游戏

    倒着跑一遍就行了

    code

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 const int mod=1e4;
     5 const int maxn=1e6+10;
     6 namespace gengyf{
     7 inline int read(){
     8     int x=0,f=1;char s=getchar();
     9     while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
    10     while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
    11     return f*x;
    12 }
    13 int n,a[maxn],x[maxn],ans,T;
    14 int main(){
    15     T=read();
    16     while(T--){
    17         n=read();ans=0;
    18         for(int i=1;i<=n;i++){
    19             a[i]=read();
    20             x[i]=a[i]-a[i-1];
    21         }
    22         for(int i=n;i>=1;i-=2){
    23             ans^=x[i];
    24         }
    25         if(ans)puts("TAK");
    26         else puts("NIE");
    27     }
    28     return 0;
    29 }
    30 /*
    31  aggressive 有进取心的
    32  alert 机敏的
    33  alliance 联盟
    34  alter 修改
    35 */
    36 }
    37 signed main(){
    38     gengyf::main();
    39     return 0;
    40 }
    View Code
  • 相关阅读:
    JAVA抽象方法,接口
    JAVA基础,字符串
    JAVA运算符
    JAVA数组
    团队任务1:第一次团队会议
    课后作业二:个人项目
    自我介绍
    python3加密 解密 签名 验签
    python3读取xml字符串
    SETX命令设置环境变量
  • 原文地址:https://www.cnblogs.com/gengyf/p/11761876.html
Copyright © 2011-2022 走看看