POJ2599 A funny game (图博弈)

题目链接:传送门

题意:

给定一个图,两个人从起点出发,轮流开飞机,当离开这个点后这个点

就不能使用了,如果轮到谁了谁不能飞了就输了。

必败状态很好找,当一个人在位置s的时候与这个点相连的没有点能用的

时候则必败。然后数据很小,直接暴力搜索就可以AC。

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <set>
#include <map>
#include <queue>
#define PB push_back
#define MP make_pair
#define REP(i,n) for(int i=0;i<(n);++i)
#define FOR(i,l,h) for(int i=(l);i<=(h);++i)
#define DWN(i,h,l) for(int i=(h);i>=(l);--i)
#define IFOR(i,h,l,v) for(int i=(h);i<=(l);i+=(v))
#define CLR(vis) memset(vis,0,sizeof(vis))
#define MST(vis,pos) memset(vis,pos,sizeof(vis))
#define MAX3(a,b,c) max(a,max(b,c))
#define MAX4(a,b,c,d) max(max(a,b),max(c,d))
#define MIN3(a,b,c) min(a,min(b,c))
#define MIN4(a,b,c,d) min(min(a,b),min(c,d))
#define PI acos(-1.0)
#define INF 1000000000
#define LINF 1000000000000000000LL
#define eps 1e-8
#define LL long long
using namespace std;

const int maxn = 1001;

int mp[maxn][maxn];

bool vis[maxn];
int ans,n,s;

bool dfs(int id){
    FOR(i,1,n){
        if(mp[id][i]&&!vis[i]){//遍历图的顺序确保了答案最小
            vis[id]=1;
            if(!dfs(i)){
                vis[id]=0;
                ans=i;
                return true;
            }
        }
        vis[id]=0;
    }
    return false;
}

int main(){
    while(~scanf("%d%d",&n,&s)){
        CLR(mp);
        REP(i,n-1){
            int u,v;
            scanf("%d%d",&u,&v);
            mp[u][v]=1;
            mp[v][u]=1;
        }
        CLR(vis);
        if(dfs(s)) printf("First player wins flying to airport %d\n",ans);
        else puts("First player loses");
    }
    return 0;
}
时间: 2024-10-13 21:19:25

POJ2599 A funny game (图博弈)的相关文章

博弈论类题目小结——转载

出处http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854534 经典的删边游戏小结:http://blog.csdn.net/acm

利用filter实时切换big5和gb2312,以及gb2312的简繁体

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求

俑烟汲的诿樟透磺勒秤窗mvus

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求

HDU 2147 kiki&#39;s game(博弈图上找规律)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2147 题目大意:给你一个n*m的棋盘,初始位置为(1,m),两人轮流操作,每次只能向下,左,左下这三个方向移动,谁最后无法移动棋子就输掉比赛,问先手是否会获胜. 解题思路:简单题,P/N分析找规律,以(n,m)点为结束点推到起始点,如图: 发现每个田字格的状态都是一样的,因为(n,m)点一定时P态,所以可以得出规律:只有当(m%2==1&&n%2==1)时,先手才会输. 代码: 1 #incl

POJ 3710 Christmas Game#经典图SG博弈

http://poj.org/problem?id=3710 (说实话对于Tarjan算法在搞图论的时候就没搞太懂,以后得找时间深入了解) (以下有关无向图删边游戏的资料来自论文贾志豪<组合游戏略述--浅谈SG游戏的若干拓展及变形>) 首先,对于无向图的删边游戏有如下定理性质: 1.(Fushion Principle定理)我们可对无向图做如下改动:将图中的任意一个偶环缩成一个新点,任意一个奇环缩成一个新点加一个新边:所有连到原先环上的边全部改为与新点相连:这样的改动不影响图的SG值. 2.(

【POJ3710】Christmas Game 博弈 有限制的图上删边游戏(树形删边游戏进化1)

转载请注明出处:http://blog.csdn.net/vmurder/article/details/42671885 其实我就是觉得原创的访问量比未授权盗版多有点不爽233... 题意: 一个树图,然后1永远是根,两人轮流删边,不能删者输. 删边限制:只能删跟1连通的边. 树图限制: 它首先是一棵树,然后某些点上可能带一个环 原描述:最开始的图是一颗带有一些简单环的树,然后任何边都至多在一个多边形上.每个多边形最多有一个节点出现在主树上. 给个神犇论文地址: 石家庄二中·贾志豪-- <组合

HDU 6105 Gameia(图上博弈)

题目链接 题意: 有一棵树,所有的节点都是没有涂色的,Alice和Bob依次给没有涂色的节点涂色,Alice涂白色(先手),Bob涂黑色并且会把与这个黑色节点有树边直接相连的节点都涂成黑色(无论这个节点之前是白色还是没有涂色),Bob还有k次机会每次可以删掉一条树边(任何时候都可以执行),直到树上的所有节点都有涂色游戏结束.若树上至少有一个节点是白色Alice获胜,否则Bob获胜. 分析: Alice先涂一个白色节点,如果Bob想获胜,就必须找到一个未涂色的节点且该节点与白色节点有边相连(相当于

特朗普的中国命题作文,很可能以贸易战开头文图/陆飞

文图/陆飞 大选的结果让很多人意外,嘴硬的特朗普笑到了最后:希拉里也挺有风度,主动给特朗普打电话,这算是认输了. 对于选举结果的分析:为什么希拉里得势不得分,为什么特朗普成功上位,本文不再赘述.一直看热闹的我们,现在可以关心下一个话题,特朗普将怎么书写摆在他面前的其中一篇命题作文:中国. 1.复盘,反全球化和孤立主义帮了特朗普 有必要简单复盘特朗普获胜的关键,看一张图(蓝色-民主党·希拉里,红色-共和党·特朗普):   发文时,根据微软必应大数据,大选前全美共有18个"摇摆州"--其中

【BZOJ1443】【JSOI2009】游戏Game 二分图+博弈

#include <stdio.h> int main() { puts("转载请注明出处谢谢"); puts("http://blog.csdn.net/vmurder/article/details/43311795"); } 题解:二分图博弈经典模型模板题. 首先黑白染色. 然后我们考虑到有一种优秀的走法, 就是先求个最大匹配,然后如果先手选择了一个最大匹配中的点,那么显然后手可以依照此点的匹配再走一步,然后先手无法走此匹配,就乱走一气,于是有两种