传送门

n点m边的有向图,

如果  一个玩家能从起点出发,走奇数步后不能再行动,

  输出Win

  输出路径

否则如果  一个玩家能走无限步

  输出Draw

否则

  输出Lose

跑一遍dfs并判环

 1 #include <cstdio>
 2 #include <vector>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6 typedef long long LL;
 7
 8 const int maxn = 1e5 + 10;
 9 vector<int> G[maxn];
10
11 int n, m;
12 bool draw;
13 bool out[maxn];
14 bool dp[maxn][2];
15 int vis[maxn][2], nxt[maxn][2];
16
17 bool dfs(int x, int s) {
18     if (!out[x]) return s == 1;
19     if (vis[x][s] == 2) return dp[x][s];
20     vis[x][s] = 1;
21     bool flag = 0;
22     for (int i = 0; i < G[x].size(); i++) {
23         int to = G[x][i];
24         if (vis[to][s ^ 1] == 1) {//注意不能为2
25             draw = 1;
26             continue;
27         }
28         if (dfs(to, s ^ 1)) {
29             flag = 1;
30             nxt[x][s] = to;
31         }
32     }
33     vis[x][s] = 2;
34     return dp[x][s] = flag;
35 }
36
37 void print(int x, int s) {
38     printf("%d", x);
39     if (nxt[x][s]) {
40         printf(" ");
41         print(nxt[x][s], s ^ 1);
42     } else {
43         puts("");
44     }
45 }
46
47
48
49 int main() {
50     scanf("%d%d", &n, &m);
51     for (int i = 1; i <= n; i++) {
52         int cnt;
53         scanf("%d", &cnt);
54         if (cnt) out[i] = 1;
55         while (cnt--) {
56             int to;
57             scanf("%d", &to);
58             G[i].push_back(to);
59         }
60     }
61     int st;
62     scanf("%d", &st);
63     if (dfs(st, 0)) {
64         puts("Win");
65         print(st, 0);
66     } else if (draw) {
67         puts("Draw");
68     } else {
69         puts("Lose");
70     }
71
72     return 0;
73 }

转载于:https://www.cnblogs.com/xFANx/p/8597209.html

Codeforces-936B Sleepy Game相关推荐

  1. CodeForces - 937D Sleepy Game

    传送门:CodeForces - 937D 题意:两人进行一场走棋子的游戏,如果有人无法再继续走下去,那么他就输了.Petya先走,且如果petya的胜负优先级为:WIN>DRAW>LOS ...

  2. Codeforces Round #467 (Div. 1): B. Sleepy Game(BFS+有向图判环)

    题意(经过转换):给你一个n个点m条边的有向图,再给你一个起点x,问存不存在一条路径满足①路径中有奇数条边:②终点的出度为0,如果存在输出Win,并在第二行输出这个路径(可能不唯一输出任意一种),否则 ...

  3. codeforces的dp专题

    1.(467C)http://codeforces.com/problemset/problem/467/C 题意:有一个长为n的序列,选取k个长度为m的子序列(子序列中不能有位置重复),求所取的k个 ...

  4. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  5. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  6. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  7. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  8. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  9. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  10. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

最新文章

  1. mysql为什么每天0点就装东西_MySQL的详细安装教程
  2. java 类中构造函数的讲解
  3. instanceof 实现
  4. [原创]辽宁移动通信-话费余额查询
  5. Maven问题总结 - 2
  6. python判断值是否为空(亲测)
  7. linux nohup不生成日志,linux重定向及nohup不输出的方法
  8. ios打不开html文件,在DocumentsWeb目录中打开UIWebview时,ios-css和js在html文件中无法链接...
  9. Tyvj P1016 包装问题 (DP)
  10. OpenCV人脸识别
  11. 检测mysql表更新吗,知网查重系统的数据库是多久更新一次?
  12. 华为外包公司一面二面三面回顾
  13. 2017校招中的流年回忆
  14. Users用户类默认值及各属性可能的值
  15. 解决cmd中文输入法看不到待选文字
  16. ios微信组件跳转_IOS如何从微信中跳转APP
  17. shell(37) : java控制台运行打印颜色字体
  18. 9.PS-强大的画笔工具
  19. MyBatis实现中间表关联查询
  20. 光时域反射仪都有什么功能

热门文章

  1. Android面部动态识别(眼睛+嘴巴+鼻子轮廓标记)
  2. oracle怎么绑定vue,Oracle AutoVue 安装与配置教程,oracleautovue
  3. 关于360插件化框架Replugin竖屏修改为横屏解决方案
  4. python进程和线程大全
  5. Java选择结构之switch
  6. 从苏宁电器到卡巴斯基第06篇:我在佳木斯的日子(中)
  7. IAQI的计算工具类,根据空气检测浓度值计算IAQI值和空气质量等级(pm2.5,pm10,so2,no2,co,o3)
  8. 魔兽RPG仿魔兽世界:基尔加丹的末日V1.0
  9. html5 自动触发事件,HTML5视频触发事件触发一次
  10. python中if语句的实例_python的if语句里怎样写两个条件