洛谷 P3480 [POI2009] KAM-Pebbles
因为每次拿石子后都要保证单调不降,因此差分后转化为不能 \(<0\)。
差分后就转化成了阶梯 Nim,没了。
code
// Problem: P3480 [POI2009]KAM-Pebbles
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P3480
// Memory Limit: 125 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
#define pb emplace_back
#define fst first
#define scd second
#define mems(a, x) memset((a), (x), sizeof(a))
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ldb;
typedef pair<ll, ll> pii;
const int maxn = 1010;
int n, a[maxn], b[maxn];
void solve() {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
scanf("%d", &a[i]);
b[i] = a[i] - a[i - 1];
}
int s = 0;
for (int i = n; i >= 1; i -= 2) {
s ^= b[i];
}
puts(s ? "TAK" : "NIE");
}
int main() {
int T = 1;
scanf("%d", &T);
while (T--) {
solve();
}
return 0;
}