http://poj.org/problem?id=2425

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; struct node
{
int to,next;
}e[10000010];
int head[1010],Ecou;
int sg[1010]; void add_edge(int u,int v)
{
e[Ecou].to=v;
e[Ecou].next=head[u];
head[u]=Ecou++;
} int getsg(int n)
{
if(sg[n]!=-1)
return sg[n]; bool vis[1010];
memset(vis,0,sizeof(vis));
for(int i=head[n];i>=0;i=e[i].next)
{
sg[e[i].to]=getsg(e[i].to);
vis[sg[e[i].to]]=1;
}
for(int i=0;;i++)
if(!vis[i])
return sg[n]=i;
} int main()
{
int n;
while(~scanf("%d",&n))
{
memset(head,-1,sizeof(head));
Ecou=0;
int num,a;
for(int i=0;i<n;i++)
{
scanf("%d",&num);
while(num--)
{
scanf("%d",&a);
add_edge(i,a);
}
}
memset(sg,-1,sizeof(sg));
while(1)
{
int m,x,ans=0;
scanf("%d",&m);
if(!m) break; while(m--)
{
scanf("%d",&x);
ans^=getsg(x);
}
if(ans) printf("WIN\n");
else printf("LOSE\n");
}
}
return 0;
}

POJ 2425 A Chess Game#树形SG的更多相关文章

  1. POJ 2425 A Chess Game 博弈论 sg函数

    http://poj.org/problem?id=2425 典型的sg函数,建图搜sg函数预处理之后直接求每次游戏的异或和.仍然是因为看不懂题目卡了好久. 这道题大概有两个坑, 1.是搜索的时候vi ...

  2. poj 2425 A Chess Game(SG函数)

    A Chess Game Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 3551   Accepted: 1440 Desc ...

  3. POJ 2425 A Chess Game(有向图SG函数)题解

    题意:给一个有向图,然后个m颗石头放在图上的几个点上,每次只能移动一步,如果不能移动者败 思路:dfs打表sg函数,然后求异或和 代码: #include<queue> #include& ...

  4. poj 2425 A Chess Game 博弈论

    思路:SG函数应用!! 代码如下: #include<iostream> #include<cstdio> #include<cmath> #include< ...

  5. [原博客] POJ 2425 A Chess Game

    题目链接题意:给定一个有向无环图(DAG),上面放有一些旗子,旗子可以重合,两个人轮流操作,每次可以把一个旗子从一个位置移动到相邻的位置,无法移动时输,询问先手是否必胜. 这道题可以把每个旗子看作单独 ...

  6. poj 2425 A Chess Game_sg函数

    题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点 比赛时就差这题没ak,做了几天博弈终于搞懂了. #include <io ...

  7. POJ 2599 A funny game#树形SG(DFS实现)

    http://poj.org/problem?id=2599 #include<iostream> #include<cstdio> #include<cstring&g ...

  8. pku 2425 A Chess Game (SG)

    题意: 给一个由N个点组成的一张有向图,不存在环.点的编号是0~N-1. 然后给出M个棋子所在的位置(点的编号)[一个点上可同时有多个棋子]. 每人每次可移动M个棋子中的一个棋子一步,移动方向是有向边 ...

  9. poj 2425 AChessGame(博弈)

    A Chess Game Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 3791   Accepted: 1549 Desc ...

随机推荐

  1. IOS GCD使用实例大全

    GCD是大家在IOS开发过程中经常使用的一种多线程管理机制.原理这里就不多说了,大家关心的大部分都是它的使用,下面主要介绍GCD的主要方法及其实例. 1.认识主队列,感受串行队列的运行,运行结果打印的 ...

  2. 电脑自动重启(Kernel-Power 41 (63) error)的一些解决办法

    查看是否有两个声卡驱动,如果有,尝试关闭其中一个. 可能是内存的问题,用memtest测试.如果有多于一个内存条,仅使用其中的一个试试. 更改电源设置,使机器工作在低耗状态. 更新所有驱动,尤其是主板 ...

  3. maven插件报错之解决

    maven插件报错之解决 用m2eclipse创建Maven项目时报错 maveneclipsebuilddependenciesauthorizationplugins 用m2eclipse创建 ...

  4. LeetCode 476. Number Complement

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  5. HTML5学习总结——HTML5入门与新增标签

    一.HTML5概要 1.1.为什么需要HTML5 概念: HTML5 是继 HTML4.01, XHTML 1.0 和 DOM 2 HTML 后的又一个重要版本, 旨在消除富 Internet 程序( ...

  6. 四位len灯流水

    #include <msp430x14x.h> //#include<intrins.h> #define uint unsigned int void delay(long ...

  7. android studio依赖库工程Activity显示问题及库工程设置

    android studio引用库工程其实不难,直接添加依赖module即可,但是我在操作过程中出现一些奇怪的问题,苦扰我一整天,为了祭奠这苦命的一天特别mark一下. 首先描述一下我的错误现象: s ...

  8. 最近一段时间get到的小知识(c++的)

    (1)查看一个程序运行的时间 int main() { clock_t start,end; start=clock(); ... end=clock(); cout<<"Run ...

  9. 使用automake等命令自动生成Makefile文件

    参考:http://www.cnblogs.com/njucslzh/archive/2010/04/29/1723320.html

  10. 手机端rem自适应布局实例

    首先要书写核心js代码,控制住页面的初始大小:我是以750px(即iPhone6)的标准,设置font-size:100px:<script>        (function (doc, ...