http://acm.hdu.edu.cn/showproblem.php?pid=1524

博弈  用SG处理

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<queue>
#include<map>
#include<stack>
#include<algorithm>
#include<cmath>using namespace std;
//#pragma comment(linker,"/STACK:1000000000,1000000000")#define LL long longconst int N=1005;
const int M=100005;
int Nim[N];
int head[N];
int I,next[M],k[M];
void Add(int i,int j)
{k[I]=j;next[I]=head[i];head[i]=I++;
}
int dp(int x)//求x对应到Nim里的值
{if(Nim[x]!=-1)return Nim[x];bool had[N];memset(had,false,sizeof(had));for(int t=head[x];t!=-1;t=next[t]){had[ dp( k[t] ) ]=true;}for(int i=0;i<N;++i){if(!had[i])//第一个到不了的值{Nim[x]=i;break;}}return Nim[x];
}
int main()
{//freopen("data.txt","r",stdin);int n;while(scanf("%d",&n)!=EOF){memset(head,-1,sizeof(head));I=0;int m;for(int i=0;i<n;++i){scanf("%d",&m);while(m--){int j;scanf("%d",&j);Add(i,j);}}memset(Nim,-1,sizeof(Nim));while(scanf("%d",&m),m){int flag=0;while(m--){int tmp;scanf("%d",&tmp);flag=(flag^dp(tmp));//S-Nim 异或}if(flag)printf("WIN\n");elseprintf("LOSE\n");}}return 0;
}

转载于:https://www.cnblogs.com/liulangye/archive/2012/10/17/2727161.html

hdu 1524 A Chess Game相关推荐

  1. hdu 1524 A Chess Game 博弈

    题目链接 给出一个有向无环图, 上面放有一些棋子, 两个人轮流移动棋子, 当一个人无法移动时, 算输. 求出每一个点的sg值, 异或就可以.出度为0的点sg值为0. 1 #include<bit ...

  2. hdu 1680 Cheesy Chess

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

  3. HDU 4405 Aeroplane chess(期望DP)

    题目链接 理解了过程就是个水题,收拾东西回家. 1 #include <cstdio> 2 #include <iostream> 3 #include <cstring ...

  4. HDU - 3026 Chinese Chess(二分图的必经边)

    题目链接:点击查看 题目大意:给出一个n*m的棋盘,现在开始放 '车' 棋子,规定只有k个位置可以摆放棋子,现在要求摆放的棋子尽可能多且不能互相攻击,到此为止是一个经典的二分图最大匹配问题,接下来是要 ...

  5. 杭电OJ分类题目(3)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...

  6. 【博弈论】博弈论题单题解

    会不断更新的(咕咕咕) 题目难度大致满足非降性 博弈论真是深坑啊,填不动了,还有Nim积.Every-SG游戏等等等等很多题型还不会,先去学别的了 涉及知识: SG函数及SG定理:传送门 博弈论知识总 ...

  7. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  8. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

  9. 『ACM-算法-动态规划』初识DP动态规划算法

    一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...

最新文章

  1. R删除冗余行数据基于dplyr包
  2. 编译-编译原理C/C++ 静态链接库(.a) 与 动态链接库(.so)
  3. B+树与LSM树的区别与联系
  4. java class 转 字节_[转]JAVA字节数据与JAVA类型的转换
  5. 背景图层和普通图层的区别_ps:图层有多少种类?我已经列出来了,学不学就看你自己了...
  6. html重绘text,使用DrawText重绘C++
  7. 苹果CEO库克改名字了?都是因为他...
  8. php svn更改密码,svn 开启修改备注
  9. android 7双排设置菜单,双排状态栏
  10. 框架整合——Spring与MyBatis框架整合
  11. thinkphp5---join联合查询
  12. 【Flink】(04)Apache Flink 漫谈系列 —— 实时计算 Flink 与 Alibaba Cloud Realtime Compute 剖析
  13. JavaScript小案例------js实现分页插件效果篇
  14. 习题8.16 (简单方法)输入一个字符串,内有数字和非数字字符
  15. 关于ECMWF和ERA5没有近地面相对湿度数据的解决办法
  16. fedora linux搜狗输入法,GitHub - Hello-Linux/fedora-Sougou-Pinyin: fedora 搜狗拼音,安装超简单,各种精美皮肤!...
  17. 计算机视觉——SIFT特征提取与检索
  18. Python模拟屏幕点击自动完成词达人任务(附源码)
  19. 自然语言处理NLP 2022年最新综述:An introduction to Deep Learning in Natural Language Processing
  20. 有赞996反省:男程序员们,别再低头写代码了(上)

热门文章

  1. 快看这个机器人,在使用双截棍!| 附正经paper
  2. BZOJ2693:JZPTAP——题解
  3. 《计算机系统:系统架构与操作系统的高度集成》——1.6 操作系统的演化
  4. 后台代码之买票和查找核实航班的代码
  5. NO.30 禅道项目管理软件扩展机制简介
  6. C++学习笔记(14) static_cast 与 dynamic_cast
  7. C语言函数多个返回值
  8. python是个坑_python 坑1
  9. Pytest之fixture
  10. 开奖|八大福利,康康你中奖了没?