题目链接:传送门

题意:

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

就不能使用了。假设轮到谁了谁不能飞了就输了。

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

时候则必败。

然后数据非常小。直接暴力搜索就能够AC。

代码例如以下:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <set>
  7. #include <map>
  8. #include <queue>
  9. #define PB push_back
  10. #define MP make_pair
  11. #define REP(i,n) for(int i=0;i<(n);++i)
  12. #define FOR(i,l,h) for(int i=(l);i<=(h);++i)
  13. #define DWN(i,h,l) for(int i=(h);i>=(l);--i)
  14. #define IFOR(i,h,l,v) for(int i=(h);i<=(l);i+=(v))
  15. #define CLR(vis) memset(vis,0,sizeof(vis))
  16. #define MST(vis,pos) memset(vis,pos,sizeof(vis))
  17. #define MAX3(a,b,c) max(a,max(b,c))
  18. #define MAX4(a,b,c,d) max(max(a,b),max(c,d))
  19. #define MIN3(a,b,c) min(a,min(b,c))
  20. #define MIN4(a,b,c,d) min(min(a,b),min(c,d))
  21. #define PI acos(-1.0)
  22. #define INF 1000000000
  23. #define LINF 1000000000000000000LL
  24. #define eps 1e-8
  25. #define LL long long
  26. using namespace std;
  27.  
  28. const int maxn = 1001;
  29.  
  30. int mp[maxn][maxn];
  31.  
  32. bool vis[maxn];
  33. int ans,n,s;
  34.  
  35. bool dfs(int id){
  36. FOR(i,1,n){
  37. if(mp[id][i]&&!vis[i]){//遍历图的顺序确保了答案最小
  38. vis[id]=1;
  39. if(!dfs(i)){
  40. vis[id]=0;
  41. ans=i;
  42. return true;
  43. }
  44. }
  45. vis[id]=0;
  46. }
  47. return false;
  48. }
  49.  
  50. int main(){
  51. while(~scanf("%d%d",&n,&s)){
  52. CLR(mp);
  53. REP(i,n-1){
  54. int u,v;
  55. scanf("%d%d",&u,&v);
  56. mp[u][v]=1;
  57. mp[v][u]=1;
  58. }
  59. CLR(vis);
  60. if(dfs(s)) printf("First player wins flying to airport %d\n",ans);
  61. else puts("First player loses");
  62. }
  63. return 0;
  64. }

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

  1. 【Mark】博弈类题目小结(HDU,POJ,ZOJ)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 首先当然要献上一些非常好的学习资料: 基础博弈的小 ...

  2. 博弈论BOSS

    基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530 经典翻硬币游戏小结:http://blog.csdn.net/acm_c ...

  3. HDU_2147——组合博弈,转换为P/N图,然后找规律

    Problem Description Recently kiki has nothing to do. While she is bored, an idea appears in his mind ...

  4. POJ 3710 Christmas Game#经典图SG博弈

    http://poj.org/problem?id=3710 (说实话对于Tarjan算法在搞图论的时候就没搞太懂,以后得找时间深入了解) (以下有关无向图删边游戏的资料来自论文贾志豪<组合游戏 ...

  5. HDU 2147 kiki's game(博弈图上找规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2147 题目大意:给你一个n*m的棋盘,初始位置为(1,m),两人轮流操作,每次只能向下,左,左下这三个 ...

  6. hdu 2147(巴什博弈+NP图)

    kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/10000 K (Java/Others)Total ...

  7. 牛客练习赛53 D 德育分博弈政治课 (思维建图,最大流)

    牛客练习赛53 D德育分博弈政治课 链接:https://ac.nowcoder.com/acm/contest/1114/D来源:牛客网 题目描述 德育分学长最近玩起了骰子.他玩的骰子不同,他的骰子 ...

  8. Hdu 2147 巴什博弈 PN图

    P:先手必输   N:先手必胜 PN图规则:如果一个点能转换到的所有点都是N,那么此点状态为P.若能转化到一个P,即使对手面临必输状态,此点为N. 然后找规律就行 #include<bits/s ...

  9. 博弈问题之SG函数博弈小结

    SG函数: 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移 动者判负.事实上,这个游戏可以认为是所有Impartial Combinatorial Ga ...

随机推荐

  1. Java系列学习(七)-面向对象

    1.成员变量和局部变量的区别 (1)在类中的位置不同 成员变量:类中 方法外 局部变量:方法中 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创 ...

  2. 警告视图及操作表单在xcode7.0中的使用

    警告视图(alert)及操作表单(action sheet)都用于向用户提供反馈.(模态视图) 操作表单:要求用户在两个以上选项之间做出选择.操作表单从屏幕底部出现,显示一系列按钮供用户选择.用户必须 ...

  3. JavaScript 封装插件学习笔记(一)

    此篇只是笔记,在借鉴.参考.模仿的过程,可能不完整,请多指教! 定义插件名称要注意命名冲突,防止全局污染. 1.第一种Javascript对象命名:(Javascript语言是“先解析,后运行”,解析 ...

  4. [Android]异常4-javax.mail.AuthenticationFailedException

    javax.mail.AuthenticationFailedException 背景:JavaMail发送电子邮件 异常原因: 可能一>发件人帐号.密码有误 可能二>需要使用SSL安全认 ...

  5. 用nginx实现分布式限流

    1.前言 一般对外暴露的系统,在促销或者黑客攻击时会涌来大量的请求,为了保护系统不被瞬间到来的高并发流量给打垮, 就需要限流 . 本文主要阐述如何用nginx 来实现限流. 听说 Hystrix 也可 ...

  6. Ubuntu下获取内核源码

    查看当前系统使用的内核版本: apt-cache search linux-source 输出如下: linux-source - Linux kernel source with Ubuntu pa ...

  7. 太坑了,mybatis注解一对多,id没了

    @Select("SELECT *, id nodes FROM QUESTION_PO WHERE ID=#{id}") @Results({ @Result(property ...

  8. day06-数字类型、字符串类型内置方法

    目录 数字类型内置方法 字符串类型内置方法 有序 or 无序 可变 or 不可变 数字类型内置方法 1. int()强制类型转化成整型 age_str = '18' # 定义字符串 age = int ...

  9. 【Centos7】Tomcat安装及一个服务器配置多个Tomcat

    完成解压 参考 http://www.cnblogs.com/h--d/p/5074800.html https://www.cnblogs.com/tudou-22/p/9330875.html 步 ...

  10. SpringMVC进行json数据交互

    请求key/value.输出json.此方法在开发中比较常用. 在注解适配器中加入messageConverters <!--注解适配器 --> <bean class=" ...