NC20322. [SDOI2009]E&D
描述
输入描述
第一行是一个正整数T(T ≤ 20),表示测试数据数量。接下来有T组数据。对于每组数据,第一行是一个正整数N,表示桌子上共有N堆石子。其中,输入数据保证N是偶数。第二行有N个正整数S1..SN,分别表示每一堆的石子数。
输出描述
包含T 行。对于每组数据,如果小E 必胜,则输出一行”YES”,否则输出”NO”。
示例1
输入:
2 4 1 2 3 1 6 1 1 1 1 1 1
输出:
YES NO
C++ 解法, 执行用时: 27ms, 内存消耗: 420K, 提交时间: 2022-01-13 22:45:34
#include<bits/stdc++.h> using namespace std; int getSG(int n,int m) { if((n&1)&&(m&1)) return 0; if(!(n&1)&&!(m&1)) return getSG(n/2,m/2)+1; return (n&1)?getSG((n+1)/2,m/2)+1:getSG(n/2,(m+1)/2)+1; } int main() { int t,n,a,b; scanf("%d",&t); while(t--) { scanf("%d",&n); n/=2; int ans=0; for(int i=1;i<=n;i++) { int a,b; scanf("%d%d",&a,&b); ans^=getSG(a,b); } if(ans) puts("YES"); else puts("NO"); } return 0; }