【HDU】1536 S-Nim

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..

你可能感兴趣的:(HDU)