题意:给一个有向图,然后个m颗石头放在图上的几个点上,每次只能移动一步,如果不能移动者败

思路:dfs打表sg函数,然后求异或和

代码:

#include<queue>
#include<cstring>
#include<set>
#include<map>
#include<stack>
#include<cmath>
#include<vector>
#include<cstdio>
#include<iostream>
#include<algorithm>
#define eps 1e-9
typedef long long ll;
const int maxn = 1000 + 10;
const int seed = 131;
const ll MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
using namespace std;
vector<int> G[maxn];
int in[maxn], n;
int s[maxn], sg[maxn];
void dfs(int u){if(G[u].size() == 0){sg[u] = 0;return;}for(int i = 0; i < G[u].size(); i++){int v = G[u][i];if(sg[v] == -1)dfs(v);}memset(s, 0, sizeof(s));for(int i = 0; i < G[u].size(); i++){int v = G[u][i];s[sg[v]] = 1;}for(int i = 0; i < maxn; i++){if(!s[i]){sg[u] = i;return;}}
}
int main(){while(~scanf("%d", &n)){memset(in, 0, sizeof(in));memset(sg, -1, sizeof(sg));for(int i = 0; i <= n - 1; i++){int x, to;G[i].clear();scanf("%d", &x);while(x--){scanf("%d", &to);G[i].push_back(to);in[to]++;}}for(int i = 0; i <= n - 1; i++){if(!in[i]){dfs(i);}}int m;while(scanf("%d", &m) && m){int ans = 0, x;while(m--){scanf("%d", &x);ans ^= sg[x];}if(ans == 0) printf("LOSE\n");else printf("WIN\n");}}return 0;
}

转载于:https://www.cnblogs.com/KirinSB/p/9674738.html

POJ 2425 A Chess Game(有向图SG函数)题解相关推荐

  1. (转载)--SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

  2. 组合博弈游戏 - SG函数和SG定理

    转载来自:http://blog.csdn.net/luomingjun12315/article/details/45555495 在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜 ...

  3. 组合游戏 - SG函数和SG定理

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

  4. SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

  5. 博弈论(Nim游戏、有向图游戏之SG函数)

    这里写目录标题 经典NIM游戏 Nim游戏属于公平组合游戏ICG 有向图游戏(SG函数) Mex运算 SG函数 单个有向图(一堆石子) 求SG值(记忆化递归) 有向图游戏的和 ,(多个有向图(多堆石子 ...

  6. NIM数字游戏 SG函数 有向图博弈 学习记录

    写在前面:很早之前我就想写一写博弈论的学习记录了.本篇文章记录了我在学习博弈论初步时的顺序,现在网络上的博弈论资料大多都是从SG函数开始讲解,而我谜一样的学习方法让我对博弈论初步有了不同的理解过程,所 ...

  7. *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)

    题干: Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers ...

  8. 2016多校联合训练1 B题Chess (博弈论 SG函数)

    题目大意:一个n(n<=1000)行,20列的棋盘上有一些棋子,两个人下棋,每回合可以把任意一个棋子向右移动到这一行的离这个棋子最近的空格上(注意这里不一定是移动最后一个棋子),不能移动到棋盘外 ...

  9. 博弈论与sg函数入门

    记录一点结论性的东西,推导见百度吧. 首先博弈的前提是双方"绝对理智". 一般的胜负博弈游戏来说,有以下几点:(注意必胜必败是针对这回合操作的人) 所有终结状态为必败点(比如五子棋 ...

最新文章

  1. android安卓动态设置控件宽高
  2. java+script+当前日期_javascript获取当前时间
  3. windows下检测网站是否正常运行并自动重启服务
  4. 差异与阵列和阵列结构和链表的区别
  5. 关于istringstream用法的一个坑
  6. java 继承的内存分配_图解Java继承内存分配
  7. linux耳机检测,Audio Jack 的耳机检测和按键检测
  8. python内置属性类_Python内置类属性,元类研究
  9. Docker中安装Jenkins实时发布.net core 项目(二)
  10. LetCode-MSSQL查找重复的电子邮箱
  11. Codeforces Round #723 (Div. 2)B. I Hate 1111(完全背包)
  12. html中 DPlayer 播放m3u8文件【方式二】
  13. 浅谈网页压缩GZIP
  14. 三国志战略版:求贤之我要换啥
  15. i78700k配什么显卡好_i7 8700k配什么主板好?适合Intel八代i7-8700k处理器搭配的主板推荐...
  16. MineCraft mod开发环境搭建
  17. 慢下来,等一等自己的灵魂
  18. 最新解决谷歌翻译无法使用的教程
  19. Stardust 案例:制作散景光斑
  20. 【git版本控制】| git版本控制操作命令(全)

热门文章

  1. c语言寻找公共字符串,C语言查找两个字符串中的最大公共子串
  2. 在设计四人抢答器中灯全亮_数字电子技术课程设计报告(四人抢答器).doc
  3. html访问时sessionid变,传统Session跨域导致的Sessionid不一致问题解决方案
  4. element ui需要引入样式吗_彻底学会element-ui按需引入和纯净主题定制
  5. oracle视图可以带日期变量么,创建视图时日期字段如何只都天
  6. Python Text I/O
  7. python pytest raises()
  8. nginx ngx_http_index_module(默认初始页)
  9. Hadoop Flume
  10. 2.6 更多导数的例子