题目链接

给出一个有向无环图, 上面放有一些棋子, 两个人轮流移动棋子, 当一个人无法移动时, 算输。

求出每一个点的sg值, 异或就可以。出度为0的点sg值为0。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define pb(x) push_back(x)
 4 #define ll long long
 5 #define mk(x, y) make_pair(x, y)
 6 #define lson l, m, rt<<1
 7 #define mem(a) memset(a, 0, sizeof(a))
 8 #define rson m+1, r, rt<<1|1
 9 #define mem1(a) memset(a, -1, sizeof(a))
10 #define mem2(a) memset(a, 0x3f, sizeof(a))
11 #define rep(i, a, n) for(int i = a; i<n; i++)
12 #define ull unsigned long long
13 typedef pair<int, int> pll;
14 const double PI = acos(-1.0);
15 const double eps = 1e-8;
16 const int mod = 1e9+7;
17 const int inf = 1061109567;
18 const int dir[][2] = { {-1, 0}, {1, 0}, {0, -1}, {0, 1} };
19 const int maxn = 1e6+5;
20 int head[maxn], sg[1005], num;
21 struct node
22 {
23     int to, nextt;
24 }e[maxn];
25 void init() {
26     mem1(head);
27     num = 0;
28     mem1(sg);
29 }
30 void add(int u, int v) {
31     e[num].to = v;
32     e[num].nextt = head[u];
33     head[u] = num++;
34 }
35 int mex(int x) {
36     if(~sg[x])
37         return sg[x];
38     bool vis[1005];
39     memset(vis, false, sizeof(vis));
40     for(int i = head[x]; ~i; i = e[i].nextt) {
41         int v = e[i].to;
42         if(sg[v]==-1)
43             sg[v] = mex(v);
44         vis[sg[v]] = 1;
45     }
46     for(int i = 0; ; i++)
47         if(!vis[i])
48             return i;
49 }
50 int main()
51 {
52     int n, x, y;
53     while(scanf("%d", &n)!=EOF) {
54         init();
55         for(int i = 0; i<n; i++) {
56             scanf("%d", &x);
57             while(x--) {
58                 scanf("%d", &y);
59                 add(i, y);
60             }
61         }
62         while(scanf("%d", &x)&&x) {
63             int ans = 0;
64             for(int i = 0; i<x; i++) {
65                 scanf("%d", &y);
66                 ans ^= mex(y);
67             }
68             if(ans) {
69                 puts("WIN");
70             } else {
71                 puts("LOSE");
72             }
73         }
74     }
75 }

转载于:https://www.cnblogs.com/yohaha/p/5047239.html

hdu 1524 A Chess Game 博弈相关推荐

  1. hdu 1524 A Chess Game

    http://acm.hdu.edu.cn/showproblem.php?pid=1524 博弈  用SG处理 #include<iostream> #include<cstdio ...

  2. hdu 1680 Cheesy Chess

    hdu   1680   Cheesy Chess           题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1680 题目大意:(好长的题啊- ...

  3. hdu 1907 Jone 尼姆博弈

    题目:点击打开链接 John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) T ...

  4. HDU 1525 - Euclid's Game ( 博弈 )

    题意 Stan和Ollie玩游戏,Stan先手.给出两个数字,可以用大数减去小数的整数倍,要求不能减到小于0.谁先将一个数字减到0,谁获胜. 思路 博弈 假设 a > b 比赛的时候想到了关于a ...

  5. HDU - 1907 John(尼姆博弈变形)

    题目链接:点击查看 题目大意:给出 n 堆石子,两个人轮流取,至少取一个,取到最后一个的人输 题目分析:尼姆博弈是取到最后一个的人获胜,这个题正好反着 一个很显然的奇异局势就是,每一堆的石子的个数都为 ...

  6. Good Luck in CET-4 Everybody! HDU - 1847 (巴氏博弈)

    Good Luck in CET-4 Everybody! HDU - 1847 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Ci ...

  7. HDU 1846 Brave Game 巴士博弈

    博弈问题 巴士博弈 HDU1846<-点击此处进入链接 威尔夫博弈 HDU1527<-点击此处进入链接 斐波那契博弈 HDU2516<-点击此处进入链接 尼姆博弈 HDUXXX< ...

  8. HDU 2188 经典巴什博弈

    1.问题模型:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个,最后取光者得胜. 经典巴什博弈,参考到博客别人:点击打开链接 #include<iostream> ...

  9. HDU 1079 Calendar Game (博弈)

    转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents           by---cxlove 题目:每次可以后移一个月,或者后移 ...

最新文章

  1. 清华大学教授:唐杰——深度分析:人工智能的下个十年
  2. Boost:fork联接的测试程序
  3. AlphaGo Zero又上《Science》封面!谷歌的人工智能又干翻人类了!
  4. [ZJOI2009]取石子游戏
  5. Nuxt使用cookies踩坑之设置axios的header
  6. 软件工程——概要设计
  7. 边缘计算的架构、挑战与应用
  8. 希望Online -- 前10级快速功略 + 怪物掉的装备
  9. 华硕天选一代无线网卡断网
  10. 如何提升自己的硬实力
  11. 基于Java的实时通信软件的设计(类似微信)
  12. php鼠标移过图片放大代码,鼠标移上去,图片会自动原地放大CSS写法
  13. loaderruner
  14. 无线wifi打印机服务器原理,一般无线打印机的连接方法及遇到常见故障解决办法...
  15. 硬币面值组合(上台阶)
  16. LaTeX大括号公式和一般括号总结
  17. 中国人民公安大学(PPSUC) 网络对抗技术作业-实验一
  18. Apache Tomcat 安全性指南
  19. 黑龙江农村初中生将推行电子学籍
  20. 解决xpath提取不规则网页的问题

热门文章

  1. 淘淘商城第24讲——实现商品类目的选择
  2. 51单片机的UART应用
  3. UPC-5594 Colorful Slimes(思维)
  4. 近50年前500部精品电影合集
  5. 《北风那个吹》大结局看完了
  6. 学习笔记-Volatility
  7. 回溯法解决01背包-非递归算法-效率低
  8. 虚拟机正在应用计算机设置,vmware虚拟机安装windows 10 technical preview卡在“正在准备设置50%”的解决办法-网络教程与技术 -亦是美网络...
  9. 医院招聘sass管理软件解决方案分析(2)
  10. Redux的核心知识