noi2011 兔兔与蛋蛋 题目大意 直接看原题吧 就是\(n*m\)的格子上有一些白棋和一些黑棋和唯一一个空格 兔兔先手,蛋蛋后手 兔兔要把与空格相邻的其中一个白棋移到空格里 蛋蛋要把与空格相邻的其中一个黑棋移到空格里 谁不能移动谁输 分析 这篇博客挺好的 我们可以将题意转化成兔兔将空格移到白棋那里 蛋蛋将空格移动到黑棋那里 转化成图黑白染色,变成二分图 我们设空格染成黑色 那空格移动的轨迹一定是: 黑\(~\)-白-黑-白-黑 对应的是: 空格-白棋-黑棋-白棋-黑棋 所以染成白色且为白棋\…
Description Solution 考虑犯错误的条件:之前是处于必胜状态,该操作之后就变成了必败状态. 我们可以把这个过程看成两人对网格图进行黑白染色,变成了一个二分图模型,即当前位置向相邻不同颜色的位置连边,构成的二分图,一次游戏相当于一个最大匹配. 一个结论:如果一定存在包含当前位置的最大匹配,那么处于先手必胜状态 证明: 因为当前点不处于最大匹配中,那么只有非匹配边可以走,假设走到了\(v\),\(v\)点则可以走匹配边,假设走了一条匹配边,则到达的下一个点只能走非匹配边,因为匹配的…
叙述性说明 这些日子.兔子和蛋像一个新的棋盘游戏. 这场比赛是在 n 行 m 在船上进行列. 前,棋盘上有一 个格子是空的,其他的格子中都放置了一枚棋子,棋子或者是黑色,或者是白色. 每一局游戏总是兔兔先操作.之后两方轮流操作.详细操作为: 兔兔每次操作时,选择一枚与空格相邻的白色棋子,将它移进空格. 蛋蛋每次操作时,选择一枚与空格相邻的黑色棋子,将它移进空格. 第一个不能依照规则操作的人输掉游戏. 近期兔兔总是输掉游戏,并且蛋蛋格外嚣张,于是兔兔想请她的好朋友-- 你--来帮助她. 她带来了一…
题目链接 \(Description\) \(Solution\) 这种题当然要黑白染色.. 两种颜色的格子数可能相同,也可能差1.记\(n1/n2\)为黑/白格子数,\(s1/s2\)为黑/白格子权值和. 如果\(n1\neq n2\),假设\(n1>n2\),因为每次是同时给两种颜色+1,所以最后的差也只能是\(s1-s2\)(\(s1>s2\)),个数只差1,所以也只能都变成\(s1-s2\).(注意\(s1-s2\geq A_{max}\)) 如果\(n1=n2\),假设\(x\)合法…
类似于happiness的一道题,容易想到最小割的做法. 但是不同的是那一道题是相邻的如果相同则有收益,这题是相邻的不同才有收益. 转化到建图上面时,会发现,两个相邻的点连的边容量会是负数.. 有一种转化的办法,把图进行黑白染色后,把白点的S-T倒转过来,这样就转化成了happiness那道题了... # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream>…
脑补一下给出的图:一个环,然后有若干连接环点的边,我们就是要求这些边不重叠 考虑一下不重叠的情况,两个有交边一定要一个在环内一个在环外,所以把相交的边连边,然后跑黑白染色看是否能不矛盾即可(可能算个2-SAT?) #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=100005; int T,n,m,q[N],a[205][205],cnt,h[N]…
题目链接 \(Description\) 一个\(N*M\)的有障碍的棋盘,先手放置棋子后,从后手开始轮流移动棋子,不能走重复的位置,不能移动的输.求在哪些位置放棋子是先手必胜的. \(Solution\) 依旧先黑白染色,移动棋子对应一个匹配. 那么原图有两种情况: 一是存在完美匹配:那么无论先手选哪个点开始,假设是S集合某点,那么后手沿匹配边走,先手要么沿匹配边再走到S集合某点,要么没法走.即先手必败: 二是不存在完美匹配: 1.先手从最大匹配点开始,好像胜负情况都有,先不考虑: 2.先手从…
题目链接 首先空格的移动等价于棋子在黑白格交替移动(设起点移向白格就是黑色),且不会走到到起点距离为奇数的黑格.到起点距离为偶数的白格(删掉就行了),且不会重复走一个格子. (然后策略就同上题了,只不过第一步是走棋子) 还是考虑二分图最大匹配.如果起点不一定在最大匹配上,先手走到最大匹配点,后手沿最大匹配边走,先手要么无法走要么回到刚刚的情况,即先手必败(最大匹配是一条奇数长路径). 反之,如果起点一定在最大匹配上,先手必胜. 判断一个点是否一定在最大匹配上可以先求一遍,再对非匹配点DFS.但是…
未经博主同意不得转载 2437: [Noi2011]兔兔与蛋蛋 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 693  Solved: 442 Description Input 输入的第一行包含两个正整数 n.m. 接下来 n行描述初始棋盘.其中第i 行包含 m个字符,每个字符都是大写英文字母"X".大写英文字母"O"或点号"."之一,分别表示对应的棋盘格中有黑色棋子.有白色棋子和没有棋子.其中…
Description Input 输入的第一行包含两个正整数 n.m.接下来 n行描述初始棋盘.其中第i 行包含 m个字符,每个字符都是大写英文字母"X".大写英文字母"O"或点号"."之一,分别表示对应的棋盘格中有黑色棋子.有白色棋子和没有棋子.其中点号"."恰好出现一次.接下来一行包含一个整数 k(1≤k≤1000) ,表示兔兔和蛋蛋各进行了k次操作.接下来 2k行描述一局游戏的过程.其中第 2i – 1行是兔兔的第 i…