【题解】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
复制代码

 

posted @   喵の耳  阅读(142)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示