【HDU】1536 S-Nim

981 ワード

http://acm.hdu.edu.cn/showproblem.php?pid=1536
同じnim…マルチアングル…シングルヒープn<=10000、毎回取ったのは所与の集合の数==
#include <cstdio>

#include <cstring>

using namespace std;

bool b[105];

int s[105], f[10005];

int main() {

	int k, m, n;

	while(scanf("%d", &k), k) {

		for(int i=0; i<k; ++i) scanf("%d", &s[i]);

		for(int i=1; i<=10000; ++i) {

			memset(b, 0, sizeof b);

			for(int j=0; j<k; ++j) if(i>=s[j]) b[f[i-s[j]]]=1;

			for(int j=0; j<=k+1; ++j) if(!b[j]) { f[i]=j; break; }

		}

		scanf("%d", &m);

		for(int kk=0; kk<m; ++kk) {

			scanf("%d", &n); int ans=0, t;

			for(int i=0; i<n; ++i) { scanf("%d", &t); ans^=f[t]; }

			ans?putchar('W'):putchar('L');

		}

		puts("");

	}

	return 0;

}

  
 
このように水を塗るのはつまらないです。
同じsg.