AcWing 1319. 移棋子游戏(sg 博弈)
思路
- n 个图是 n 个独立的游戏,我们可以求每个图的 sg 值异或起来,等于 0 必败
- 否则必胜。
代码
#include <bits/stdc++.h>
using namespace std;
#define db double
#define ll long long
#define Pir pair<int, int>
#define fi first
#define se second
#define pb push_back
#define m_p make_pair
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
/*==========ACMer===========*/
const int N = 2005, M = 6005;
int n, m, k;
struct Edge
{int v, ne;
} e[M];
int h[N], tot;
void add(int u, int v) { e[++ tot] = { v, h[u] }; h[u] = tot; }
int a[N], f[N];int sg(int u)
{if (f[u] != -1) return f[u];set<int> s;for (int i = h[u]; i; i = e[i].ne) {int v = e[i].v;s.insert(sg(v));}for (int i = 0; ; i ++) {if (s.count(i) == 0)return f[u] = i;}
}int main()
{memset(f, -1, sizeof f);scanf("%d %d %d", &n, &m, &k);int u, v;while (m --){scanf("%d %d", &u, &v);add(u, v);}for (int i = 1; i <= k; i ++) scanf("%d", &a[i]);int ans = 0;for (int i = 1; i <= k; i ++) ans ^= sg(a[i]);if (ans)printf("win\n");elseprintf("lose\n");return 0;
}
AcWing 1319. 移棋子游戏(sg 博弈)相关推荐
- [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题
题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...
- AcWing 1319. 移棋子游戏
sg函数是一张有向无环图 尼姆博弈对每一张图sg(值)进行游戏 就是加强版的集合尼姆博弈(集合尼姆博弈中拓展是根据集合可能的新状态),这里是回归本质,sg操作是对每个状态拓展出边,并通过出边sg值集合 ...
- 1319. 移棋子游戏(sg+图论(移棋子)邻接表)
题目:https://www.acwing.com/problem/content/1321/ 给定一个有 N 个节点的有向无环图,图中某些节点上有棋子,两名玩家交替移动棋子. 玩家每一步可将任意一颗 ...
- [博弈论]移棋子游戏
https://www.acwing.com/problem/content/1321/ 思路: 求所有棋子的sg异或之和, 记忆化搜索 得到当前结点后继的这些点的sg值之和,放到set里面(哈希表也 ...
- 2018.09.16 loj#10243. 移棋子游戏(博弈论)
传送门 题目中已经给好了sg图,直接在上面跑出sg函数即可. 最后看给定点的sg值异或和是否等于0就判好了. 代码: #include<bits/stdc++.h> #define N 2 ...
- 博弈论sg函数——《移旗子游戏》《剪纸游戏》
传送门:移棋子游戏 思路:按照sg函数定义,在这道题里面,不能移动的状态就是终点态,sg值设为0,其余所有的点的sg函数值就是属于其所有后继节点的sg函数值组成的集合里面非集合元素的最小的一个数字,也 ...
- NIM数字游戏 SG函数 有向图博弈 学习记录
写在前面:很早之前我就想写一写博弈论的学习记录了.本篇文章记录了我在学习博弈论初步时的顺序,现在网络上的博弈论资料大多都是从SG函数开始讲解,而我谜一样的学习方法让我对博弈论初步有了不同的理解过程,所 ...
- 组合博弈游戏 - SG函数和SG定理
转载来自:http://blog.csdn.net/luomingjun12315/article/details/45555495 在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜 ...
- 牛客小白月赛7 B自杀游戏(sg博弈)
sg博弈结论为,下个状态sg的补集的最小值. 题目 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+9; b ...
- 如何赢得数学游戏(博弈问题)
数学游戏(博弈问题)是最优化问题中的一类,同时它也是一类很有趣的逻辑推理问题.其中运用最广的思维是:倒推思维. 例1.桌子上有24根火柴,甲.乙两人轮流取,每人每次取1-3根.谁取到最后一根谁就获胜. ...
最新文章
- mysql中数据表如何关联_mysql 如何导入/导出2个关联表中的数据
- MySQL普通用户修改密码
- iOS 9之WatchKit for WatchOS 2
- 时尚电商新赛道:揭秘 FashionAI 技术
- 使用C#在应用程序间发送消息
- 操作SSO对象模型时,异常“SSO_E_CANARY_VALIDATION_FAILURE”的处理
- 洛谷 P1017 进制转换
- 上海宝付教你如何更好地保护手机隐私
- energy plus matlab,Energyplus教程系列1—Energyplus到底能干啥.ppt
- riscv ELF bss段解析
- java 释放锁_Java并发编程:锁的释放
- 改造家里的开关成为智能开关,保留原有开关控制,零火版,射频遥控器篇(二)
- 【国际象棋】棋盘游戏-微信小程序开发流程详解
- 使用Python实现日历功能
- ZYNQ之路--搞清楚Xilinx开发软件之间的关系
- Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载
- Predis\ClientException: Command ‘ZPOPMAX‘ is not a registered Redis command
- 五天搞定英语语法系列汇总
- windows系统怎么打开自带摄像头?(然并卵的回答)
- GENESIS公链将打破不同区块链孤岛效应
热门文章
- 【连载】第三章刚体的定轴转动第二节转动惯量 刚体定轴转动定律
- C# 使用Panel控件实现窗体嵌套
- 学习笔记(1):Linux操作系统入门培训_Linux/Unix基础培训教程视频课程-01.Linux入门培训之_软硬件平台介绍...
- 关于MSN群 创建MSN群 使用MSN群
- ❤️PPT素材网站推荐❤️让你的PPT更加迷人❤️
- vue获取麦克风_HTML5操作麦克风获取音频数据(WAV)的一些基础技能
- node 项目打包部署至服务器
- 网页对联广告代码效果大全
- ubuntu 下星际译王词典下载地址
- Fujitsu Lifebook U1010安装XP TabletPC 2005完全攻略