题目

传送门 to VJ

传送门 to CF

思路

就是询问你能不能走奇数步走到一个没有出度的点。

这可以用大力 bfs\text{bfs}bfs 实现。

然后平局就老老实实用 tarjan\text{tarjan}tarjan 吧。

代码

#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
inline int readint(){int a = 0; char c = getchar(), f = 1;for(; c<'0' or c>'9'; c=getchar())if(c == '-') f = -f;for(; '0'<=c and c<='9'; c=getchar())a = (a<<3)+(a<<1)+(c^48);return a*f;
}
inline void writeint(long long x){if(x < 0) putchar('-'), x = -x;if(x > 9) writeint(x/10);putchar((x%10)^48);
}
# define MB template < class T >
MB void getMax(T &a,const T &b){ if(a < b) a = b; }
MB void getMin(T &a,const T &b){ if(b < a) a = b; }struct Edge{int to, nxt;Edge(int T=0,int N=0):to(T),nxt(N){}
};const int MaxN = 100005;
int head[MaxN], cntEdge; Edge edge[MaxN<<2];void addEdge(int from,int to){edge[cntEdge] = Edge(to,head[from]);head[from] = cntEdge ++;
}bool vis[MaxN][2]; // 0: even 1: odd
int pre[MaxN][2];
queue<int> q;
void bfs(int x){q.push(x), vis[x][0] = true;while(not q.empty()){x = q.front(); q.pop();for(int i=head[x]; ~i; i=edge[i].nxt)for(int j=0; j<2; ++j)if(vis[x][j] and not vis[edge[i].to][j^1]){vis[edge[i].to][j^1] = true;pre[edge[i].to][j^1] = x;q.push(edge[i].to);}}
}int dfn[MaxN], low[MaxN], dfsClock;
bool inSta[MaxN], circle;
void tarjan(int x){low[x] = dfn[x] = ++ dfsClock;inSta[x] = true;for(int i=head[x]; ~i; i=edge[i].nxt){if(dfn[edge[i].to] == 0){tarjan(edge[i].to);getMin(low[x],low[edge[i].to]);} else if(inSta[edge[i].to])getMin(low[x],low[edge[i].to]);}if(low[x] != dfn[x]) // 存在一个环circle = true;inSta[x] = false;
}void printPath(int x,int d){if(pre[x][d] != 0)printPath(pre[x][d],d^1);printf("%d ",x);
}int main(){int n = readint(); readint();for(int i=1; i<=n; ++i)head[i] = -1;for(int i=1; i<=n; ++i){int m = readint();while(m --)addEdge(i,readint());}int started = readint();bfs(started), tarjan(started);for(int x=1; x<=n; ++x)if(head[x] == -1 and vis[x][1]){puts("Win"); printPath(x,1);return 0;}if(circle) return puts("Draw")*0;return puts("Lose")*0;
}

[CF936B]Sleepy Game相关推荐

  1. UVA10427 Naughty Sleepy Boys【数学】

    Hasan and Tanveer are two naughty boys of the class. They spent most of their class time playing 'Ti ...

  2. P5200 [USACO19JAN]Sleepy Cow Sorting

    P5200 [USACO19JAN]Sleepy Cow Sorting 题目描述 Farmer John正在尝试将他的N头奶牛(1≤N≤10^5),方便起见编号为1-N,在她们前往牧草地吃早餐之前排 ...

  3. LG5200 「USACO2019JAN」Sleepy Cow Sorting 树状数组

    \(\mathrm{Sleepy Cow Sorting}\) 问题描述 LG5200 题解 树状数组. 设\(c[i]\)代表\([1,i]\)中归位数. 显然最终的目的是将整个序列排序为一个上升序 ...

  4. Codeforces937D Sleepy Game

    题意:两个人在有向上进行博弈,先手先下,后手在睡觉,所以后手由先手代下,每个人每次要沿着边移动,不能移动的人输,问最后先手是赢还是输还是平局,赢的话输出路径 题解:两个人进行博弈,先手帮后手下,所以先 ...

  5. Sleepy Kaguya

    https://ac.nowcoder.com/acm/contest/338/C 题解:验算一下,发现其实只有1和-1两个答案.奇数为-1,偶数为1: 演算过程: G(k)=F[k+1]*F[k+1 ...

  6. P5200 [USACO19JAN]Sleepy Cow Sorting 牛客假日团队赛6 D 迷路的牛 (贪心)

    链接:https://ac.nowcoder.com/acm/contest/993/E 来源:牛客网 对牛排序 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  7. CodeForces - 937D Sleepy Game

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

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

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

  9. P5200 [USACO19JAN]Sleepy Cow Sorting G

    题目描述 Farmer John正在尝试将他的 NN 头奶牛(1\le N\le 10^51≤N≤105),方便起见编号为 1\ldots N1-N,在她们前往牧草地吃早餐之前排好顺序. 当前,这些奶 ...

  10. Sleepy Cow Herding

    题目描述 Farmer John的三头获奖奶牛Bessie.Elsie和Mildred,总是会迷路走到农场上遥远的地方去!他需要你帮助将她们一起赶回来. 农场的草地大体是一块狭长的区域--我们可以将其 ...

最新文章

  1. [HNOI2002] Kathy 函数
  2. Linux对用户态的动态内存管理
  3. 大脑对陌生音乐的反应要比对熟悉音乐的反应强度
  4. java ipv6正则表达式_IPV4和IPV6正则表达式的深入讲解
  5. Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)
  6. JavaSE | 多线程
  7. 转:iOS-CoreLocation:无论你在哪里,我都要找到你!
  8. LNK2019:无法解析的外部符号
  9. 中科大在50年代的教学理念
  10. 推荐几款好用的模态框附带教程
  11. linux7.3ssh登陆不上,centos7.3升级openssh到7.7p1后root用户无法登陆的问题
  12. java调用数据库存储过程_Java调用SQL Server的存储过程详解
  13. c语言混响,混响插件( 2cAudio Aether)
  14. 复变函数在计算机科学中的应用,复变函数的应用以及发展史.doc
  15. python 软件包 petri_常用Petri网模拟软件工具简介
  16. MySQL数据库锁机制
  17. Kindle Paperwhite2测评剧本.
  18. 苹果11相机权限开启不了_iOS11 访问相册、相机权限,居然变化了,巨坑啊........
  19. 实变函数自制笔记9:勒贝格积分的极限定理
  20. 【存储数据恢复】esx vmfs的互斥导致存储数据丢失的数据恢复案例

热门文章

  1. 053试题 - 320/321/322/323/324/326/330/332/544/553/585/586/587/588/589/592/596/597/598/599 rman backup
  2. 武汉城建学院计算机专业柴曲,采访对话丨在世界一流的柴院学音乐,是怎样一种感受?...
  3. lcd调色板工作原理详解
  4. E08【选尺码】I'm looking for size 43
  5. 和差化积公式详细推导
  6. Gromacs相关基础知识
  7. PAAS(platform as a serverce,平台即服务)
  8. BUUCTF中的“新年快乐”
  9. rtmp协议分析(Message 消息,Chunk分块)
  10. 搭建IP代理池伪装IP地址