博弈论
hrbust_yr
这个作者很懒,什么都没留下…
展开
-
POJ 2505 A multiplication game
题目链接题意:乘法博弈,每个人可以从1开始乘,大于等于n的胜题解:sg函数打表找规律发现和18有关。sg函数打表代码:#include<cstdio>using namespace std;const int N = 1e4+10;typedef long long ll;ll n ;int SG(ll x){ if(x >= n) return 0; for(ll i = 2;i <= 9 ;i ++){ if(!SG(x原创 2020-12-03 16:19:58 · 155 阅读 · 0 评论 -
POJ 2975 Nim
题目链接:https://vjudge.net/problem/POJ-2975题意:严格意义来说其实并不是博弈论。有多少种方法可以产生必胜态(也就是让对手为必败态),也就是异或值为0的方式题解:模拟,前缀异或和后缀异或即可。坑点:不能等于#include<cstdio>using namespace std;const int N = 1e4+10;typedef long long ll;ll a[N];ll pre[N] , suf[N];int _ , n ;原创 2020-12-03 16:14:56 · 126 阅读 · 0 评论 -
HOJ 4388 Stone Game II
链接:vj链接分类:类签到题题意:一堆可以拆成k和k xor n堆(两者同时得小于n)题解:完全就是最简单的奇数偶数博弈,因为拆位只能在已有位中拆,所以就是每个数的位数-1相加判奇数偶数。#include<bits/stdc++.h>using namespace std;const int N = 55;int a[N];int _ , n ;int main(){ int T = 0; for(scanf("%d" , &_) ; _ ; _ -原创 2020-12-03 16:10:04 · 105 阅读 · 0 评论 -
SG函数 《算法竞赛进阶指南》总结与练习 Acwing235 魔法珠
题目链接:链接题目大意:中文=-=题目思路:和2020ccpc网络赛的题目有点像,但简单了不少,考验你SG函数的理解。这一题纯凭自己理解手打的,如有不对之处请大佬指正。1.首先基础之处便是对这个公平组合游戏的判断,必胜态必败态,公平,相同规则下几个条件都满足。肯定是个sg函数的题目2.每个数有自己对应的sg值,这个sg值是什么得根据题目的限定条件来决定,因为是分解成他的约数,从SG定理中可以知道,肯定是各个约数sg异或之和,而由于每个数都可能被删除一次,那么将每一次的异或值算出来,根据sg定理,可以原创 2020-11-21 14:21:25 · 218 阅读 · 0 评论 -
ccpc 2020江西省赛 博弈论 J Split Game
题目链接:J蓝书链接:蓝书题题目大意:和蓝书上的有向图剪纸游戏博弈除了获胜方式不一样,其他几乎是一样,给你一个n×m的纸片,每一次可以将纸片剪成两部分,谁先剪出1×1的格子就必败。题解思路:其他所有地方都几乎和蓝书上的模板题目相同,主要是如何处理必败态,训练赛中wa的点就是处理的时候简单的把1×1的状态也就是在sg[1][1]中表示的状态简单的划归为必胜态,这是完全不对的,其实稍加思考会发现sg搜索的过程中他是不会枚举1×1的状态的,因为这种状态对于参与游戏的两个人是必败状态,他们是不会主动去选择这种原创 2020-11-21 12:18:22 · 905 阅读 · 1 评论 -
博弈刷题小集锦,码
POJ 2234 Matches GameHOJ 4388 Stone Game IIPOJ 2975 NimHOJ 1367 A Stone GamePOJ 2505 A multiplication gameZJU 3057 beans gamePOJ 1067 取石子游戏POJ 2484 A Funny GamePOJ 2425 A Chess GamePOJ 2960 S-NimPOJ 1704 Georgia and BobPOJ 1740 A New Stone Game原创 2020-09-22 14:55:45 · 118 阅读 · 0 评论 -
SG函数之POJ2311Cutting Game && AcWing219 剪纸游戏
题目链接:链接Cutting Game思路:1.1×X 或 X * 1的纸张一定是必胜态,然而他们必须经过2×2,2×3,3×2的局面,而这些局面为必败态,由此推出了在我前一篇博客中讲到的公平组合游戏四要素1.2人的公平游戏2.交替操作3.操作方法一样4.无法操作的时候为负(在这里便有所涉及)接下来就是如何写SG函数了,如下:#include<bits/stdc++.h>using namespace std;const int N = 210;int n , m;int原创 2020-09-22 14:54:26 · 206 阅读 · 0 评论 -
SG函数详解
SG函数详解关于概念必胜点和必败点必胜点和必败点的性质组合游戏SG函数的分析与推导取石子问题Sprague-Grundy定理(SG定理):SG函数小习题简介:sg函数和sg定理是公平组合游戏中的重要组成部分,这篇文章是结合博客(末尾会贴博客链接)和我之前写博弈论题目的总结与反思,因为之前并没有系统的学习sg函数,所以做博弈论的题目可谓是一波三折,可以说学习sg函数的相关内容加深了我对博弈论的理解,让我对博弈论题目有了一个系统的思考。这篇博客是一篇小小的总结,以后提高最重要的方法还是需要多刷题。关于概念原创 2020-09-22 14:42:56 · 3001 阅读 · 0 评论 -
K MUV LUV UNLIMITED Gym 102361K(树上博弈详解!)
链接题意:两人轮流取叶子,取到根的人获胜参考博客本题其实花了很长时间去理解去看,之前真的不是完全明白为什么这样,看了上面的那篇参考博客,我想我应该对博弈题有一点浅薄的认知了。而我自己写的这一篇博客相当于我理解的一个过程,我觉得是写的更加详细了一点,仅供大家参考,说的内容还是很详实的。思路:打这场训练的时候当时就根据题意推了很久,用的非常笨的方法,利用已知必胜态必败态推导未知必胜态和必败态,草稿纸上推演了很长时间,就是想尽办法把必败态转化。失败了。因为太过于复杂。下面介绍博客链接的方法,我认为这个原创 2020-06-16 14:25:25 · 695 阅读 · 0 评论 -
Southeastern European Regional Programming Contest Bucharest, Romania – Vinnytsya, Ukraine Porblem J
题目链接:https://codeforces.com/group/xrTA2IaQje/contest/255050这是一个无效链接,当然如果咱们在一个学校那当咱没说,这是咱学校Group里的。博弈论的题目,训练赛的时候我最后一个小时吭吃瘪肚的推了半天wa在test5上,无聊的分享一下手稿题意:三人尼姆博弈,后俩人想置第一人于死地,而第一个人置之死地而后生。题解:我先统计一下非1的数c...原创 2019-10-05 20:20:34 · 571 阅读 · 0 评论