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

原文地址:https://www.cnblogs.com/iwtwiioi/p/4278108.html