HDU 2147 找规律博弈】的更多相关文章

题目大意: 从右上角出发一直到左下角,每次左移,下移或者左下移,到达左下角的人获胜 到达左下角为必胜态,那么到达它的所有点都为必败态,每个点的局势都跟左,下,左下三个点有关 开始写了一个把所有情况都计算的打表 for];                if(flag1 || flag2 || flag3) p[i][j] = false;                else p[i][j] = true;            }        } 但貌似因为样例太多就超时了 根据自己所打的…
题目大意是: 从n*n的方格角落的一个起点出发,每次移到上下左右一个未曾到达过的位置,谁不能走了谁就输了 想了好久都想不出,看了大神的题解 Orz了 果然博弈不是脑残的游戏啊... 这里从起点出发,将所有方格两两连接,如果为偶数,那么这个起点会有一个对应方格与其两两连接,那么起点说明已经占据了一格 那么每次先手只要走到当前格对应相连的格子上就保证可以有路,那么后手就输了 反之n为基数,那么没有点与起点相连,说明先手必然走入一个新的1*2的小长条中,那么后手始终有1*2的小长条的方格与其对应,所以…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1564 Problem Description New Year is Coming! ailyanlu is very happy today! and he is playing a chessboard game with 8600.The size of the chessboard is n*n. A stone is placed in a corner square. They play…
http://acm.hdu.edu.cn/showproblem.php?pid=5051 打表找规律 据说是http://zh.wikipedia.org/wiki/%E6%9C%AC%E7%A6%8F%E7%89%B9%E5%AE%9A%E5%BE%8B 蛋疼题 还要特判4种情况 顺道膜拜昂神 #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #includ…
题意 有n个格子排成一行,两人轮流填,可填入"S"或"0",先得到"SOS"的人胜:如果全部填完也没有出现"SOS",则为平局.请判断是先手胜.后手胜还有平局. 分析 第一次知道,博弈题也能打表找规律. 简单地说就是,给DFS一个返回值,返回三个不同的值分别代表先手胜.后手胜和平局. 枚举当前填的格子,如果出现后手出现必败态,先手胜,直接返回:如果后手出现平局,则存在平局:否则,后手败. (好像超内存了...问题不大 不难得出…
http://acm.hust.edu.cn/vjudge/contest/126262#problem/D 分为3种情况,n=1,n=2,n>=3 其中需要注意的是n=2的情况,通过打表找规律 #include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #includ…
这类题目就是纸上模拟,找规律. 问题描述:在一块铜板上有三根杆,目的是将最左边杆上的盘全部移到右边的杆上,条件是不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面 问:现在有N个圆盘,她至少多少次移动才能把这些圆盘从最左边移到最右边? 纸上模拟:模拟之后发现将圆盘从左移动到中间的次数=从中间移到右边=1/2从左边移到右边次数 f(n)表示至少n次移动才能把这些圆盘从最左边移到中间    a(n)表示第n个圆盘移动的次数 当n=1时,f(1…
P:先手必输   N:先手必胜 PN图规则:如果一个点能转换到的所有点都是N,那么此点状态为P.若能转化到一个P,即使对手面临必输状态,此点为N. 然后找规律就行 #include<bits/stdc++.h> using namespace std; int main() { int n, m; while (scanf("%d%d", &n, &m) && n + m) { != && m % != ) { printf(…
http://acm.hdu.edu.cn/showproblem.php?pid=5963 题意: 思路: 我们可以先只考虑单链,自己试几种案例就可以发现规律,只有与根相连的边为1时,只需要奇数次操作,也就是1次就可以,而别的都需要偶数次操作才能把这条链上的边权全变成0,次数为$2^{n-1}$,n为边的层数.所以我们只要统计与根相连的有多少条权值为1的边即可. 需要改权值的时候搜索一下找到边然后修改. #include<iostream> #include<algorithm>…
Play a game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1030    Accepted Submission(s): 838 Problem Description New Year is Coming! ailyanlu is very happy today! and he is playing a chessboa…