4 条题解
-
1
将 个数字进行黑白间隔染色,你会发现,如果取队首或者队尾,先手一定取白色或者黑色中的一个,后手亦如此。
因此,先手可以先计算奇数位和偶数位之和,挑选大的进行取即可(如果相等也没关系,题目说明了相等先手胜)。
因此,只需要判断是谁先手,谁就赢。
#include<bits/stdc++.h> using namespace std; #define int long long #define ull unsigned long long #define rep(i,x,y) for(int i=x;i<=y;i++) #define rrep(i,x,y) for(int i=x;i>=y;i--) #define sc scanf #define pr printf inline int read(){int s=0,w=0;char c=getchar();while(!isdigit(c)){w|=(c=='-');c=getchar();}while(isdigit(c)){s=(s<<1)+(s<<3)+(c^48);c=getchar();}return !w?s:!s;} int T,n,opt,x; signed main(){ T=read(); while(T--){ n=read();opt=read(); while(n--) x=read(); if(opt) pr("czy\n");//是 czy 先手。 else pr("kqp\n");//反之,是 kqp 先手。 //注意:这里是换行,不是空格。 } return 0; }
- 1
信息
- ID
- 51
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 95
- 已通过
- 47
- 上传者