题意概括:你已经赢得两局,最后一局是N个棋子往后移动,最后一个无法移动的玩家失败。

题目分析:有向无环图sg值游戏,尼姆游戏的抽象表达。得到每个棋子的sg值之后,把他们异或起来,考察异或值是否为0.

 #include "cstdio"
int figure[][];
int sg[];
int t;
void fbegin()
{
for (int i=;i<;i++)
{
sg[i] = -;
for (int j=;j<;j++)
{
figure[i][j] = -;
}
}
}
int dfs(int n)
{
if (sg[n] != -)
return sg[n];
int hash[] = {};
for (int i=;i<t;i++)
{
if (figure[n][i] == )
hash[dfs(i)] = ;
}
for (int i=;;i++)
if (hash[i] == )
return sg[n] = i;
}
int main()
{
int a,b,sum;
while (scanf ("%d",&t) != EOF)
{
fbegin();
for (int i=;i<t;i++)
{
scanf ("%d",&a);
if (!a)
sg[i] = ;
while (a-- && scanf ("%d",&b))
{
figure[i][b] = ;
}
}
while (scanf ("%d",&a) && a)
{
sum = ;
while (a--)
{
scanf ("%d",&b);
sum ^= dfs(b);
}
printf ("%s\n",sum?"WIN":"LOSE");
} }
return ;
}

暑假集训(4)第八弹——— 组合(hdu1524)的更多相关文章

  1. 暑假集训(4)第七弹——— 组合(hdu1850)

    题意概括:你赢得了第一局.魔鬼给出的第二局是,如果有N堆牌,先手的人有几种可能胜利. 问题分析:尼姆游戏,先得到n堆牌的数量异或和,再将异或和与每一个牌组的数量异或,如果结果小于原牌组数量 则可能++ ...

  2. 暑假集训(4)第六弹——— 组合(poj1067)

    题意概括:上一次,你成功甩掉了fff机械兵.不过,你们也浪费了相当多的时间.fff团已经将你们团团包围,并且逐步 逼近你们的所在地.面对如此危机,你不由得悲观地想:难道这acm之路就要从此中断?虽然走 ...

  3. 暑假集训(2)第八弹 ----- Hero(hdu4310)

    K - Hero Crawling in process... Crawling failed Time Limit:3000MS     Memory Limit:65536KB     64bit ...

  4. 暑假集训(1)第八弹 -----简单迷宫(Poj3984)

    Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, ...

  5. 暑假集训(3)第四弹 -----Frogger(Poj2253)

    题意梗概:青蛙王子最近喜欢上了另一只经常坐在荷叶上的青蛙公主.不过这件事不小心走漏了风声,被某fff团团员知 道了,在青蛙王子准备倾述心意的那一天,fff团团员向湖泊中注入大量的充满诅咒力量的溶液.这 ...

  6. 暑假集训(3)第三弹 -----Til the Cows Come Home(Poj2387)

    题意梗概:据说母牛在产奶的时候,因为奶量太充足,希望有人帮它挤奶,它回家就很快.我们便能喝到鲜美的 牛奶,不过,贫奶季节却大不相同,它会懒洋洋的在大草原上晃来晃去的晒太阳,而不会想到马上回家,这可不 ...

  7. 暑假集训(2)第七弹 -----今年暑假不AC(hdu2037)

    J - 今年暑假不AC Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64 ...

  8. 暑假集训(4)第五弹——— 数论(hdu1222)

    题意概括:那天以后,你好说歹说,都快炼成三寸不烂之舍之际,小A总算不在摆着死人脸,鼓着死鱼眼.有了点恢复的征兆.可孟子这家伙说的话还是有点道理,那什么天将降....额,总之,由于贤者法阵未完成,而小A ...

  9. 暑假集训(4)第四弹 -----排列,计数(hdu1465)

    题意概括:嗯,纵使你数次帮助小A脱离困境,但上一次,小A终于还是失败了.那数年的奔波与心血,抵不过轻轻一指,便彻底 湮灭,多年的友谊终归走向末路.这一切重击把小A彻底击溃! 不为什么,你到底还是要继续 ...

随机推荐

  1. Winform 水印TextBox

    方法一: public partial class WaterTextBox : TextBox { private readonly Label lblwaterText = new Label() ...

  2. cocos2d-x 资源路径研究

    调用cc.FileUtils:getInstance():addSearchResolutionsOrder("src"); 加入�一个搜索路径,就能够直接载入src文件夹下的资源 ...

  3. iOS开发——图形与动画篇OC篇&图层基本上动画

    图层的一些基本动画效果 #define kRadianToDegrees (radian) (radian * 180.0) / (M_PI) //闪烁 [self.testView.layer ad ...

  4. ABAP FIELD-SYMBOLS 有大作用- 将没有可改参数的增强出口变得也能改主程序的值了

    看下图代码: report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两 ...

  5. php编程中容易忽略的地方

    一:fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] ...

  6. 利用 Composer 完善自己的 PHP 框架(二)——发送邮件

    本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 上一篇文章中,我们手工建造了一个简易的视图加载器 ...

  7. 解决ajax回调函数无返回值得问题

    这里以编辑验证角色名为例: 首先,定义一个flag全局变量. 然后,在回调函数resp()中根据判断将flag的值设为true或false. 最后,在调用函数ckrname()中,return fla ...

  8. css笔记03:伪类first-child

    1. 匹配第一个 <p> 元素 在下面的例子中,选择器匹配作为任何元素的第一个子元素的 p 元素: <html> <head> <style type=&qu ...

  9. 关于JAVA那点事---i++和++i

    对i++和++i 一直有点晕,今天专门抽空来研究相关的知识. 先从简单的说起. 有如下程序: int i=0; i=i++; system.out.print(i); 一眼望去这个结果显而易见是1,但 ...

  10. Adobe Edge Animate –使用EdgeCommons加载和播放音频

    Adobe Edge Animate –使用EdgeCommons加载和播放音频 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 在Edge中,可以new一 ...