poj 2425 A Chess Game_sg函数
题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点
比赛时就差这题没ak,做了几天博弈终于搞懂了.
#include <iostream>
#include <cstdio>
#include<vector>
#include<cstring>
using namespace std;
#define N 1010
vector<int> adj[N];
int sg[N],n;
int mex(int v){
bool vis[N]={0};
int i,w;
for(i=0;i<adj[v].size();i++){
w=adj[v][i];
if(sg[w]==-1)
sg[w]=mex(w);
vis[sg[w]]=1;
}
for(i=0;;i++)
if(vis[i]==0)
return i;
}
int main(int argc, char** argv) {
int m,v,w,sum;
while(scanf("%d",&n)!=EOF){
for(v=0;v<n;v++){
adj[v].clear();
scanf("%d",&m);
while(m--){
scanf("%d",&w);
adj[v].push_back(w);
}
}
memset(sg,-1,sizeof(sg));
while(scanf("%d",&m)!=EOF&&m){
sum=0;
while(m--){
scanf("%d",&v);
if(sg[v]==-1)
sg[v]=mex(v);
sum^=sg[v];
}
if(sum)
printf("WIN\n");
else
printf("LOSE\n");
}
}
return 0;
}
poj 2425 A Chess Game_sg函数的更多相关文章
- POJ 2425 A Chess Game 博弈论 sg函数
http://poj.org/problem?id=2425 典型的sg函数,建图搜sg函数预处理之后直接求每次游戏的异或和.仍然是因为看不懂题目卡了好久. 这道题大概有两个坑, 1.是搜索的时候vi ...
- poj 2425 A Chess Game(SG函数)
A Chess Game Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 3551 Accepted: 1440 Desc ...
- POJ 2425 A Chess Game(有向图SG函数)题解
题意:给一个有向图,然后个m颗石头放在图上的几个点上,每次只能移动一步,如果不能移动者败 思路:dfs打表sg函数,然后求异或和 代码: #include<queue> #include& ...
- POJ 2425 A Chess Game#树形SG
http://poj.org/problem?id=2425 #include<iostream> #include<cstdio> #include<cstring&g ...
- poj 2425 A Chess Game 博弈论
思路:SG函数应用!! 代码如下: #include<iostream> #include<cstdio> #include<cmath> #include< ...
- [原博客] POJ 2425 A Chess Game
题目链接题意:给定一个有向无环图(DAG),上面放有一些旗子,旗子可以重合,两个人轮流操作,每次可以把一个旗子从一个位置移动到相邻的位置,无法移动时输,询问先手是否必胜. 这道题可以把每个旗子看作单独 ...
- poj 2425 AChessGame(博弈)
A Chess Game Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 3791 Accepted: 1549 Desc ...
- A Chess Game POJ - 2425
Let's design a new chess game. There are N positions to hold M chesses in this game. Multiple chesse ...
- POJ 2480 (约数+欧拉函数)
题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...
随机推荐
- 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo
最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘. 3个消息分别是:WM_SIZE.WM_SIZING.WM_GETMINMAXINFO:分别对应相应的处理函数:OnSize.O ...
- Reverse Linked List 解答
Question Reverse a singly linked list. Solution 1 -- Iterative Remember to set head.next = null or i ...
- 内存映射与DMA
1.mmap系统调用的实现过程,该系统调用直接将设备内存映射到用户进程的地址空间. 2.用户空间内存如何映射到内核中(get_user_pages). 3.直接内存访问(DMA),他使得外设具有直接访 ...
- 用B-树实现虚拟图书管理系统
学校数据结构的课程实验之一. 用到的数据结构:B-树 基本功能:对虚拟书库的图书进行查看.增加.删除.修改. 主函数: #include <iostream> #include " ...
- 【CF 675D Tree Construction】BST
题目链接:http://codeforces.com/problemset/problem/675/D 题意:给一个由n个互异整数组成的序列a[],模拟BST的插入过程,依次输出每插入一个元素a[i] ...
- HBase 3、HBase练习题
1.建立学生和课程表 要求:学生可以选择多个课程,每个课程可以被多个学生选择. 查询某个学生所选的所有课程列表 查询某个课程,的学生列表 学生可以修改所选的课程 方案:学生与课程之间是多对多关系,那可 ...
- php使用PDO方法详解
PDO::exec:返回的是int类型,表示影响结果的条数. 复制代码 代码如下: PDOStatement::execute 返回的是boolean型,true表示执行成功,false表示执行失败, ...
- linux 修改文件、文件夹权限
# change owner of all the fies under dirName chown -R username dirName #change owner and the file gr ...
- 详细介绍Qt,ffmpeg 和SDL开发
Qt 与 ffmpeg 与 SDl 教程是本文要介绍的内容,从多个角度介绍本文,运用了qmake,先来看内容. 1. 注释 从“ #” 开始,到这一行结束. 2. 指定源文件 1. ...
- 本人的cocos2d-x之路
大学基本上算是混着过去了- -,说起学到的东西,感觉真的不多.然后吧.在大四这年在大妈的带动下,来到了一家棋牌游戏公司,详细就不说了.刚进去的时候真的是啥也不懂.先是看了项目代码,自己捉摸了1 ...