Deliver the Cake (拆点 dijkstra)

传送门这道题主要是建边麻烦,而稍微省点麻烦的就是拆点进行建边了,将所有 MMM 的点拆成左跟右,按部就班按照题目意思进行建边#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;template <typename T>inline void read(T &x){ int tmp = 1;char c = getc
分类: 其他 发布时间: 03-21 10:27 阅读次数: 0

Paint the Grid Reloaded (将联通块缩点+BFS)

传送门题意能够上下左右相通的并且颜色相同的块为一个整体,就是所谓的联通块。然后每次对联通块进行反转颜色操作,最后要求最小的步数使得图中所有的颜色相同。思路将所有能够相通的相同颜色进行缩点,形成联通块然后能够上下左右连通的联通块进行建边最后枚举所有的联通块,进行 bfsbfsbfs 标记操作,将所有的答案取最小值,就是最终答案#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef un
分类: 其他 发布时间: 03-21 10:27 阅读次数: 0

The 11th Zhejiang Provincial Collegiate Programming Contest

A.Pokemon Master传送门#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int, int> pii;template <typename T>inline void rd(T& x){ ll tmp = 1; char c = getchar(); x = 0;
分类: 其他 发布时间: 03-21 10:26 阅读次数: 0

Largest Quadrilateral --凸包+旋转卡壳

题意这题的题目意思很显然,给出多个在二维平面的点,求这些点中所能形成的四边形的最大面积首先要进行的是求这些点的凸包,在凸包上所构建的四边形中存在最大的四边形面积在形成凸包后,有下列三种情况最终所形成的凸包是一条直线,即所有点都在一条直线上,此时形成的凸包的点的个数为2,形成的四边形面积为0最后形成的凸包的点只有三个,此时要构建的是一个凹四边形。那么直接枚举在凸包里面的点,求这个点与其中两个凸包上的点的最小面积。最后用凸包三角形的面积减去这个所求的最小三角形面积即可。形成的凸包点的个数 ≥4≥4
分类: 其他 发布时间: 03-21 10:26 阅读次数: 0

The 15th Heilongjiang Provincial Collegiate Programming Contest--队内训练

题目ABCDEFGHIJKLSolved♠\spadesuit♠⊘\oslash⊘♠\spadesuit♠♠\spadesuit♠∙\bullet∙♠\spadesuit♠∙\bullet∙♠\spadesuit♠ ♠\spadesuit♠比赛时通过;∙\bullet∙:赛后通过;⊘\oslash⊘ :比赛时尝试了未通过;∘\circ∘:比赛时未尝试A. August开场签到题,题意就是求题目中的图形面积,一眼看下去,直觉爱心的下...
分类: 其他 发布时间: 03-21 10:26 阅读次数: 0

2-SAT专栏

2-SAT很多时候的应用场景是,给定一个事物,这个事物有两种状态选择。基本就是这个情况,详细的话,通过下面的样例与题集来进行更深入的理解。样例:Party-HDU 3062Katu Puzzle-POJ 3678实战:Get Luffy Out *-HDU1816 Go Deeper-HDU 3715中等题:Eliminate the Conflict-HDU 4115Bit Magic-HDU 4421Party-HDU 3062传送门这道题有两种矛盾关系:一对夫妻中只能一
分类: 其他 发布时间: 03-21 10:25 阅读次数: 0

Calendar Game HDU - 1079 博弈论打表

题意给定一个包含年月日的日期,每次移动只能向未来移动一天或者一个月,若无法移动一个月(如1月31日移动2月份),那就不进行这次操作。由于数据给定的从1900年至2001年,只有100年的天数,上限不超过四万个天数,可以先预处理打表后 O(1)O(1)O(1) 查询得到,或者在线处理然后套个记忆化搜索,类似于 dpdpdp ,代码如下,采用记忆化搜索进行解决。在代码当中,定义先手必胜 NNN 点的 sgsgsg 值为1,另外先手必败的 PPP 点为 -1。在博弈论当中,如果一个状态走到下一个状态的路径
分类: 其他 发布时间: 03-21 10:25 阅读次数: 0

Game HDU - 3389 阶梯博弈,找出规律即可

按照题目意思,选取几个点,最后得出的图如下:图片来源于此根据上图的规律,发现没有出度的点是1,3,41,3,41,3,4,换言之最后所有的石子都会归类到 1,3,41,3,41,3,4 这三个堆上,由此可得出这属于阶梯博弈。阶梯博弈的性质可以近似当成最后结果中,有些许堆的石子是无法被移出的,无论该堆的数量多少。根据阶梯博弈的性质,可以把 1,3,41,3,41,3,4 当成是阶梯博弈中的0号点,即偶数堆,其余的 modmodmod 6 !=1,3,4!=1,3,4!=1,3,4 的则是奇数堆。将奇
分类: 其他 发布时间: 03-21 10:25 阅读次数: 0

Nim or not Nim? HDU - 3032 先通过sg打表,找出规律再 O(n) 解决

题意有两种选择:①移除堆里面的一些石子 ②将一个堆的石子分成两份由于这题 SIS_ISI​ 的范围在 231−12^{31}-1231−1 的范围内,无法进行 sgsgsg 函数的预处理,所以只能选择先将 sgsgsg 函数的一部分表打出来,找出规律再对每个数进行处理。根据题目意思,首先第一步可以得出对于 j∈[1,ai−1]j\in[1,a_i-1]j∈[1,ai​−1],有 vis[sg[j]]=truevis[ sg[j] ]=truevis[sg[j]]=true根据第二步,可以将一个堆分
分类: 其他 发布时间: 03-21 10:24 阅读次数: 0

Coin Game HDU - 3951 博弈论NP推理,利用镜像的对称性

首先,对于一种情况:n≤kn\le kn≤k的时候,直接先手必胜,一步全拿即可。当 k=1k=1k=1 的时候,此时若 nnn 为奇数,则先手必胜,为 NNN 点;若 nnn 为偶数,则先手必败,为 PPP 点。对于剩下的情况,则需要用镜面原理来探究了。首先对于先手,取了任意颗石子之后,后手可以根据剩余石子数量的奇偶性来进行选取,保证最后造成的两片对称。题目意思是只能够取连续的片段,所以在上面中,原本是一个环状的,先手取完之后形成了一个圆弧,后手再对这个圆弧分成一模一样的两片:若先手取完之后剩余的石.
分类: 其他 发布时间: 03-21 10:24 阅读次数: 0

Being a Good Boy in Spring Festival HDU - 1850 博弈论,利用异或的性质

由于在一堆中可以取任意张牌,所以对于一个堆的牌数量 xxx,有 sg[x]=xsg[x]=xsg[x]=x先求出总的游戏 SGSGSG 值 ans=sg[a1]⊕sg[a2]⊕...⊕sg[an]ans=sg[a_1]\oplus sg[a_2] \oplus...\oplus sg[a_n]ans=sg[a1​]⊕sg[a2​]⊕...⊕sg[an​]若 ans=0ans=0ans=0 则先手必败。反之,先手必胜。那么对应第一局的可走的路:假设有两堆牌 x,yx,yx,y,假设取 yyy 中的牌,.
分类: 其他 发布时间: 03-21 10:24 阅读次数: 0

Incredible Chess LightOJ - 1186 博弈论求sg函数

根据题目意思,现在假设先手即白棋向下走 xxx 步,那么后手黑棋也可以向下走 xxx 步,此时对于整个游戏而已没有任何的干涉。同样的后上即黑棋向上走 xxx 步,白棋跟着向上走 xxx 步也并不影响结局。所以取决定性的是白棋与黑棋之间的间隔。假设间隔数量为 xxx ,显然任意一个棋子可以在间隔中走任意步数,所以对应的 sg[x]=xsg[x]=xsg[x]=x,最后直接求答案即可。#include <bits/stdc++.h>using namespace std;typede.
分类: 其他 发布时间: 03-21 10:24 阅读次数: 0

A Multiplication Game HDU - 1517 博弈论,NP关系,记忆化搜索

题目是从 p=1p=1p=1 开始游戏,谁先到达 nnn 即为胜者。在代码当中,定义先手必胜 NNN 点的 sgsgsg 值为1,另外先手必败的 PPP 点为 -1。在博弈论当中,如果一个状态走到下一个状态的路径中存在 PPP 点,则该点的状态必定是 NNN 点;反之若下一个状态不存在 PPP 点,则这个状态为 PPP 点。定义初始值 sg[1]sg[1]sg[1] 为 P,对 nnn 进行记忆化搜索即可。详情请看代码#include <bits/stdc++.h>using nam.
分类: 其他 发布时间: 03-21 10:23 阅读次数: 0

Crazy Calendar LightOJ - 1393 博弈论,阶梯博弈

此题题目只看最后一段即可。题目意思是可以将一个堆的任意石子移动到右端或者下端。可以发现最后所有的石子最终都汇入右下角的那一格当中。可以得出是阶梯博弈,定义右下角的格子为0号点,与0号点的曼哈顿距离(∣x1−x2∣+∣y1−y2∣|x_1-x_2|+|y_1-y_2|∣x1​−x2​∣+∣y1​−y2​∣)为奇数的是奇数堆,偶数的是偶数堆。最终答案将奇数堆的进行异或即可。#include <bits/stdc++.h>using namespace std;typedef long
分类: 其他 发布时间: 03-21 10:23 阅读次数: 0

Game of Hyper Knights LightOJ - 1315 博弈论,记忆化搜索求NP关系

给定一个图,可以根据图示进行6个方向移动,这里只有两个位置限制,最上方的 xxx 轴与最左方的 yyy 轴。求出每个棋子的 sgsgsg 值,最后将所有的 sgsgsg 值一起异或即可。求 sgsgsg 的时候进行记忆化搜索。具体详情请看代码#include <cstdio>#include <vector>#include <cstring>using namespace std;typedef long long ll;const int N =.
分类: 其他 发布时间: 03-21 10:23 阅读次数: 0

Aladdin and the Game of Bracelets LightOJ - 1344 博弈论,求sg函数

这道题显然就是要求每一个珠子串对应的 SGSGSG 值假设选取该珠子串中的一个权重 www ,拆分成1个或多个字串后,将这些子串的 SGSGSG 值的异或和,便是该珠子串到下一个状态的可达 SGSGSG 值标记。当最后子串里仅剩下一个珠子的时候,这个的子串 SGSGSG 值为1每次都递归的求出子串的 SGSGSG 值,最后按照 SGSGSG 的含义取 mexmexmex 即可详情请看代码#include <bits/stdc++.h>using namespace std;t.
分类: 其他 发布时间: 03-21 10:23 阅读次数: 0

Doubloon Game HDU - 4203 博弈论,NP关系推理

首先枚举 kkk ,先枚举当 kkk 为奇数的情况,当 k=1k=1k=1 的时候,显然 nnn 为奇数的时候先手必胜,此时需要走1步便可通往 PPP 点。当 k=3k=3k=3 的时候:下标0123456789状态PPPNNNPPPNNNPPPNNNPPPNNNPPPNNN同样当 k=5k=5k=5 的时候,状态表跟上图一样;可以发现当 kkk 是奇数的时候,永远满足 nnn 为奇数的时候先手必胜,并且1步可以通往 PPP 点;反之.
分类: 其他 发布时间: 03-21 10:22 阅读次数: 0

博弈论入门讲解

博弈论,即公平组合游戏,满足下列一些特征:一场游戏有两个玩家,两个玩家轮流行动,是经典的回合制游戏。两个玩家的移动按照规则移动,并且两玩家之间的移动不区分身份。两个玩家按照最优的决策行动,即给定一个局势,能够一开始就区分出先手必胜还是先手必败。巴什博弈尼姆博弈阶梯博弈斐波那契博弈现在先进入一个最经典的博弈类型:巴什博弈Brave Game HDU - 1846现在定义两个字母:NNN 为先手必胜, PPP 为先手必败。在该例题中,每次可以取1~m个石子,现在先假设能够取 m=3
分类: 其他 发布时间: 03-21 10:22 阅读次数: 0

ACM--博弈论入门--几种博弈游戏类型+题集

关于几种类型的详情,请跳转至该博客题集:C - Calendar GameD - GameE - Nim or not Nim?F - Coin GameG - Being a Good Boy in Spring Festival H - Incredible ChessI - A Multiplication GameJ - Crazy CalendarK - Game of Hyper KnightsL - Aladdin and the Game of BraceletsM
分类: 其他 发布时间: 03-21 10:22 阅读次数: 0

icpc2020济南站

A Matrix Equation利用列相互独立,将题目公式化简即可#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <iostream>#include <vector>#include <map>#include <queue>#include <bitset>#
分类: 其他 发布时间: 03-21 10:22 阅读次数: 0