poj 2425 A Chess Game_sg函数
2024-09-12 02:14:00
题意:给你一个有向无环图,再给你图上的棋子,每人每次只能移动一个棋子,当轮到你不能移动棋子是就输了,棋子可以同时在一个点
比赛时就差这题没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;
}
最新文章
- Linux 环境变量PS1设置
- R:incomplete final line found by readTableHeader on
- android-studio-bundle-141.1980579-windows download Site
- bzoj1741 [Usaco2005 nov]Asteroids 穿越小行星群
- codeforces 709C C. Letters Cyclic Shift(贪心)
- Java for LeetCode 029 Divide Two Integers
- date 命令
- hdu 4550 卡片游戏 贪心
- somethings about QSplitter
- ffmpeg调试相关知识点
- Writing A Threadpool in Rust
- 浏览器端类EXCEL表格插件 - 智表ZCELL产品V1.0.0.1版本发布
- python3学习笔记3---引用http://python3-cookbook.readthedocs.io/zh_CN/latest/
- Linux上使用源代码安装软件
- easyui 布局之window和panel一起使用时,拉动window宽高时panel不跟随一起变化
- numpy版本查看以及升降
- android-DNS服务找不到
- A. Pride
- Codeforces Round #354 (Div. 2) D. Theseus and labyrinth bfs
- EventBus源码分析
热门文章
- js Array数组的使用
- UESTC_男神的礼物 2015 UESTC Training for Dynamic Programming<;Problem A>;
- 图像处理中像素点的问题:unsigned char 和 char
- LoadRunner性能测试中Controller场景创建需注意的几点
- ISO9126 质量模型
- mysql 5.6
- oracle linux 安装过程错误 :Error in invoking target ‘agent nmhs’ of makefile
- 四、Mp3文件类型及其判断
- 【初级坑跳跳跳】第一个应用布局学习的代码运行时出错(manifest里未将activity先注册,控件错误)
- (原创) C# List 找 Max 的 Index