hdu 1524 A Chess Game 博弈论
来源:互联网 发布:听觉音乐 淘宝 编辑:程序博客网 时间:2024/05/17 03:34
题意:
两个人在一个有向五环图上面走棋子,每次只能走一步,最后谁
* 没有棋子可走就败,然后棋子可以重叠,并且有n个棋子。要求判断* 先手的胜负。
纠结了好长时间一直在想为什么sg函数要呢么定义然后看了各种博客但是只是讲了,定义的内容却很少有讲为什么的。。。。
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;int Map[1005][1005];int sg[1005],n;int dfs(int a){ if(sg[a]!=-1) return sg[a]; bool vis[2000]={0}; for(int i=0;i<n;i++) { if(Map[a][i]==1) { vis[dfs(i)]=1; } } for(int i=0;i<n;i++) if(vis[i]==0) return sg[a]=i;}int main(){ while(~scanf("%d",&n)) { memset(sg,-1,sizeof(sg)); memset(Map,0,sizeof(Map)); for(int i=0; i<n; i++) { int a; scanf("%d",&a); if(a==0) //注意这个地方,这个地方是当没有后继的时候他的sg函数为0 { sg[i]=0; continue; } while(a--) { int b; scanf("%d",&b); Map[i][b]=1; } } int m; while(~scanf("%d",&m)&&m) { int ans=0; for(int i=0;i<m;i++) { int a; scanf("%d",&a); if(sg[a]!=-1) ans^=sg[a]; else ans^=dfs(a); } if(ans==0) printf("LOSE\n"); else printf("WIN\n"); } } return 0;}
0 0
- hdu 1524 A Chess Game 博弈论
- POJ 2425 && HDU 1524 A Chess Game(博弈论)
- hdu 1524 A Chess Game
- hdu 1524 A Chess Game
- HDU 1524 - A Chess Game(SG)
- HDU 1524 A Chess Game 【SG函数】
- hdu 1524 A Chess Game (SG)
- HDU 1524 A Chess Game(SG函数)
- HDU 1524 A Chess Game(SG博弈)
- (step 8.2.13)hdu 1524(A Chess Game)
- HDU ACM 1524 A Chess Game->博弈(SG函数)
- HDU 1524 A Chess Game (SG函数模板题)
- HDU 1524 A Chess Game [SG函数]【博弈】
- HDU-1524-A Chess Game && POJ-2425 【sg】
- HDU 1517 A Multiplication Game(博弈论)
- HDU 5724 Chess(博弈论)
- HDOJ 1524 A Chess Game SG函数
- hdu1524 A Chess Game
- 例题9-7 划分成回文串 UVa11584
- 结构体占内存字节问题.
- 古代赌局——蓝桥杯2012年Java决赛
- hdu 4333 Revolving Digits (扩展kmp)
- 【LeetCode笔记】String to Integer (atoi)
- hdu 1524 A Chess Game 博弈论
- Linked List(链表)
- Data Mining(1)
- WV.55-三种求最大公约数算法比较-连续整数检测法- 欧几里得算法-分解质因数算法
- Soot I: 基本了解
- 关于c++的一些自我认识(3)
- Linux流量监控工具 - iftop
- 嵌入式系统组成
- SQL优化-索引篇