思路:一堆时,N态。两堆时,当两堆数量相同,P态,不同为N态。三堆时,先手可以变成两堆一样的,必胜N态。

此时可以总结规律:堆数为偶数可能且石子数都是两两相同的,为P态。分析四堆时,当四堆中两两数量一样的情况是P态,有一些数量不一样的情况:x < y < z < k , 可以通过拿k并分配剩下的石子,让四堆两两相同,即转换为P态。当五堆时,先手一定可以变成四堆并让四堆中的石子数两两相同。

至此,找到规律了:当n为奇数,必胜,当n为偶数且石子数两两对应为P态,否则为N态。

AC代码

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <utility>
#include <string>
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
#define eps 1e-10
#define inf 0x3f3f3f3f
#define PI pair<int, int>
typedef long long LL;
const int maxn = 100 + 5;
int cnt[maxn];

int main() {
	int n;
	while(scanf("%d", &n) == 1 && n) {
		memset(cnt, 0, sizeof(cnt));
		int x;
		for(int i = 0; i < n; ++i) {
			scanf("%d", &x);
			cnt[x]++;
		}
		if(n & 1) printf("Win\n");
		else {
			int flag = 0;
			for(int i = 1; i <= 100; ++i) {
				if(cnt[i] & 1) {
					flag = 1;
					break;
				}
			}
			if(flag) printf("Win\n");
			else printf("Lose\n");
		}
	}
	return 0;
}

如有不当之处欢迎指出!

最新文章

  1. 8.15 CSS知识点6
  2. hdu 2489 最小生成树状态压缩枚举
  3. Spring MVC与表单日期提交的问题
  4. java中String s=&quot;abc&quot;及String s=new String(&quot;abc&quot;)详解
  5. js 浏览器版本检测
  6. HDU1312-Red and Black-DFS
  7. MySQl数据库必会sql语句加强版
  8. linux 常见命令及说明杂记
  9. springboot 热部署
  10. python-day19 Django模板,路由分发,ORM
  11. uni-app 子组件如何调用父组件的方法
  12. CS Academy Sliding Product Sum(组合数)
  13. [wiki]陶德曼调停
  14. WebApi关于配置全局返回Json数据格式时间以及命名小写
  15. Android百大框架排行榜
  16. Python开发之AJAX
  17. tensorflow中 tf.train.slice_input_producer 和 tf.train.batch 函数(转)
  18. 老代码:js实现二级城市联动(MVC)
  19. 容器,表格 ,div,元素可左右拖动,滚动 css
  20. JCR分区(WOS或Thomson Reuters或汤姆森 路透)和中科院分区(附网址及查询方法)

热门文章

  1. 有史以来功能最全,使用最简单的excel导入/导出工具
  2. WPF笔记(2.4 Grid)
  3. Android ButterKnife注解式开发
  4. Asp.net core 2.0.1 Razor 的使用学习笔记(四)
  5. 小项目:聊天室 (jQuery,PHP,MySQL)
  6. 通过 [&#39;1&#39;, &#39;2&#39;, &#39;3&#39;].map(parseInt) 学习 map 和 parseInt 函数
  7. Git 生成 SSH 公钥
  8. notepad++代码输出电话号
  9. oracle游标的知识点
  10. java存放数据的5个地方