思路:我打了半天的表找规律。。。。 我们将每两个数的差值看成一堆堆石子,那么题目实际上就变为了
从当前堆可以拿出一些石子放到下一堆里去,就变成了一个阶梯博弈。。。
#include#define LL long long#define fi first#define se second#define mk make_pair#define pii pair #define piii pair >using namespace std;const int N = 1000 + 10;const int M = 10 + 7;const int inf = 0x3f3f3f3f;const LL INF = 0x3f3f3f3f3f3f3f3f;const int mod = 1e9 + 7;const double eps = 1e-6;int n, a[N], b[N];int main() { int T; scanf("%d", &T); while (T--) { scanf("%d", &n); int ans = 0; for (int i = 1; i <= n; ++i) { scanf("%d", &a[i]); } for (int i = n; i >= 1; --i) { b[n - i + 1] = a[i] - a[i - 1]; } for (int i = 1; i <= n; ++i) { if (i % 2) ans ^= b[i]; } if (!ans) { puts("NIE"); } else { puts("TAK"); } } return 0;}/**/