Codeforces937D Sleepy Game
题意:两个人在有向上进行博弈,先手先下,后手在睡觉,所以后手由先手代下,每个人每次要沿着边移动,不能移动的人输,问最后先手是赢还是输还是平局,赢的话输出路径
题解:两个人进行博弈,先手帮后手下,所以先手的优势更大,只要从开始点经过环,那么先手不可能输
现在先考虑先手赢,从开始点直接搜就可以了,有环会进入死循环,所以一个点标记开始点到这个点步数的奇偶,如果走到这个点为奇数,而奇数被标记,那么就可以不继续搜这个点了
先手平局的情况是先手不能赢,而且能从开始点走到环
剩下的情况就是输了
#include <bits/stdc++.h> #define maxn 100010 #define INF 0x3f3f3f3f using namespace std; vector<int >G[maxn], ans; int dp[maxn][2], pre[maxn][2], out[maxn], n, m, t, a, flag = 0; bool vis[maxn]; void dfs(int x, int l) {vis[x] = true;for(int to : G[x]){if(pre[to][l^1]==0) {pre[to][l^1] = x;dfs(to, l^1);}if(vis[to]) flag = 1;}vis[x] = false; } int main(){scanf("%d%d", &n, &m);for(int i=1;i<=n;i++){scanf("%d", &t);while(t--){scanf("%d", &a);G[i].push_back(a);out[i]++;}}scanf("%d", &t);pre[t][0] = -1;dfs(t, 0);for(int i=1;i<=n;i++){if(out[i] == 0&&pre[i][1]){printf("Win\n");t = 1;while(i!=-1){ans.push_back(i);i = pre[i][t];t ^= 1;}for(int i=ans.size()-1;i>=0;i--)printf("%d ", ans[i]);return 0;}}if(flag) printf("Draw\n");else printf("Lose\n");return 0; }
转载于:https://www.cnblogs.com/Noevon/p/8596540.html
Codeforces937D Sleepy Game相关推荐
- UVA10427 Naughty Sleepy Boys【数学】
Hasan and Tanveer are two naughty boys of the class. They spent most of their class time playing 'Ti ...
- P5200 [USACO19JAN]Sleepy Cow Sorting
P5200 [USACO19JAN]Sleepy Cow Sorting 题目描述 Farmer John正在尝试将他的N头奶牛(1≤N≤10^5),方便起见编号为1-N,在她们前往牧草地吃早餐之前排 ...
- LG5200 「USACO2019JAN」Sleepy Cow Sorting 树状数组
\(\mathrm{Sleepy Cow Sorting}\) 问题描述 LG5200 题解 树状数组. 设\(c[i]\)代表\([1,i]\)中归位数. 显然最终的目的是将整个序列排序为一个上升序 ...
- Sleepy Kaguya
https://ac.nowcoder.com/acm/contest/338/C 题解:验算一下,发现其实只有1和-1两个答案.奇数为-1,偶数为1: 演算过程: G(k)=F[k+1]*F[k+1 ...
- P5200 [USACO19JAN]Sleepy Cow Sorting 牛客假日团队赛6 D 迷路的牛 (贪心)
链接:https://ac.nowcoder.com/acm/contest/993/E 来源:牛客网 对牛排序 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...
- CodeForces - 937D Sleepy Game
传送门:CodeForces - 937D 题意:两人进行一场走棋子的游戏,如果有人无法再继续走下去,那么他就输了.Petya先走,且如果petya的胜负优先级为:WIN>DRAW>LOS ...
- Codeforces Round #467 (Div. 1): B. Sleepy Game(BFS+有向图判环)
题意(经过转换):给你一个n个点m条边的有向图,再给你一个起点x,问存不存在一条路径满足①路径中有奇数条边:②终点的出度为0,如果存在输出Win,并在第二行输出这个路径(可能不唯一输出任意一种),否则 ...
- P5200 [USACO19JAN]Sleepy Cow Sorting G
题目描述 Farmer John正在尝试将他的 NN 头奶牛(1\le N\le 10^51≤N≤105),方便起见编号为 1\ldots N1-N,在她们前往牧草地吃早餐之前排好顺序. 当前,这些奶 ...
- Sleepy Cow Herding
题目描述 Farmer John的三头获奖奶牛Bessie.Elsie和Mildred,总是会迷路走到农场上遥远的地方去!他需要你帮助将她们一起赶回来. 农场的草地大体是一块狭长的区域--我们可以将其 ...
最新文章
- 一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现
- 文件的读取流和书写流
- 【个人成长学习讨论小组】练习2:角色
- linux目录挂载到内存,Linux中内存挂载到目录下
- 微信小程序点击按钮实现手机振动功能
- SAP Spartacus里unit list tree节点collapse all按钮的实现逻辑
- 马斯克翻跟头机器人_马斯克又搞事情 用VR训练机器人模仿人类动作
- 根据共享文件夹的权限进行自动映射网络驱动器
- 四张类图理一下Streams的用法
- 线上展示3D可视化电子沙盘管理系统
- 脚本造成web浏览器运行速度减慢_脚本导致ie运行缓慢|ie8 提示脚本运行缓慢|脚本导致运行速度减慢...
- MATLAB图像分割之阈值分割
- 多测师_设置 Linux 支持中文
- (转载)硬盘安装XP64位系统
- C++解压zip压缩文件
- Codeforces Round #521 (Div. 3) 	E - Thematic Contests (二分 + STL)
- 汽车厂VIN码生成软件
- 资福医疗大圣磁控胶囊胃镜硬核出镜高交会
- C语言实现通讯录1.0
- phpredis使用zadd批量添加到集合