洛谷 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;
}

posted @ 2023-02-24 21:18  zltzlt  阅读(23)  评论(0)    收藏  举报