动规(16)-并查集基础题——格子游戏
【问题描述】
Alice和Bob玩了一个古老的游戏:首先画一个n * n的点阵(下图n = 3) 接着,他们两个轮流在相邻的点之间画上红边和蓝边:
直到围成一个封闭的圈(面积不必为1)为止,“封圈”的那个人就是赢家。因为棋盘实在是太大了(n<= 200),他们的游戏实在是太长了!他们甚至在游戏中都不知道谁赢得了游戏。于是请你写一个程序,帮助他们计算他们是否结束了游戏?
【输入格式】
输入数据第一行为两个整数n和m。m表示一共画了m条线。以后m行,每行首先有两个数字(x,y),代表了画线的起点坐标,接着用空格隔开一个字符,假如字符是"D ",则是向下连一条边,如果是"R"就是向右连一条边。输入数据不会有重复的边且保证正确。
【输出格式】
输出一行:在第几步的时候结束。假如m步之后也没有结束,则输出一行“draw”。
【输入样例】
3 5
1 1 D
1 1 R
1 2 D
2 1 R
2 2 D
【输出样例】
4
#include <cstdio>
#include <iostream>
using namespace std;
int fa[40001], n, m, x, y, r1, r2, xx, yy;
char ch;
int find(int u)
{return fa[u] == u ? u : fa[u] = find(fa[u]);
}
int read()
{int x = 0;char ch = getchar();while (!isdigit(ch))ch = getchar();while (isdigit(ch))x = x * 10 + ch - 48, ch = getchar();return x;
}
int main()
{cin >> n >> m;for (int i = 1; i <= n * n; i++)fa[i] = i;for (int i = 1; i <= m; i++){x = read();y = read();cin >> ch;xx = n * (x - 1) + y;if (ch == 'D')yy = xx + n;elseyy = xx + 1;r1 = find(xx);r2 = find(yy);if (r1 != r2)fa[r1] = r2;else{cout << i;return 0;}}cout << "draw" << endl;return 0;
}
动规(16)-并查集基础题——格子游戏相关推荐
- 动规(20)-并查集基础题——打击犯罪
[问题描述] 某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里 ...
- 动规(19)-并查集基础题——城镇道路
Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接 ...
- 【并查集专题】格子游戏
[并查集专题]格子游戏 题目描述 Alice和Bob玩了一个古老的游戏:首先画一个n * n的点阵(下图n = 3) 接着,他们两个轮流在相邻的点之间画上红边和蓝边: 直到围成一个封闭的圈(面积不必为 ...
- 并查集专题(亲戚,格子游戏,银河英雄传说)
文章目录 序言 正文 亲戚 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入 输出 样例输入 样例输出 讲解 Wrong Answer Code Accepted Code ...
- 【HDU1325】Is It A Tree?(并查集基础题)
有以下坑点: 1.结束输入不一定-1,题目中的叙述只是说所有权值都为正值. 2.是否构成一棵树不能只判断是否只有一个根节点,没有环路,而且还需要判断每个节点的入度一定是1,不然就不是一棵树. (无环路 ...
- PAT题解-1118. Birds in Forest (25)-(并查集模板题)
如题... #include <iostream> #include <cstdio> #include <algorithm> #include <stri ...
- 【SCAU 新生赛】18247 aler的旅游计划 并查集模板题
18247 aler的旅游计划 该题有题解 时间限制:1000MS 代码长度限制:10KB 提交次数:15 通过次数:0 收入:10 题型: 编程题 语言: 不限定 Description aler想 ...
- 战争来临(并查集模板题)
战争来临(并查集模板题) 描述 那一个骑单车卖报纸的少年 恐慌的眼泪慢慢布满了侧脸----<战争世界> B国对A国发动了侵略战争,A国不得不全力抵御.A国幅员辽阔,后方群众的支援补 ...
- 并查集模板题(stl 中map的运用)
DongDong认亲戚 DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程的 ...
最新文章
- pytest接口测试之fixture传参数request
- 吴裕雄--天生自然 PYTHON3开发学习:输入和输出
- 正则表达式-趣现象一则
- Fluid 0.6 版本发布:数据感知的Pod调度与数据集自动弹性扩缩容
- python可以在linux运行_服务器(Linux)上运行python总结
- Change Value to Reference(将值对象改为引用对象)
- MySQL 学习三:来教你如何完全卸载掉本地“头大的” MySQL 数据库!
- [HDU 3555] Bomb
- Cannot find executable for CFBundle 解决办法
- oracle查询时定义临时的变量,oracle学习笔记之临时变量的使用
- 第一次使用并配置Hibernate
- Linux时间不准确的问题![转]
- 高性能的 socket 通讯服务器(完成端口模型--IOCP)
- 中传入字符串_JavaScript字符串转数字有什么方法
- 『参考』.net CF组件编程(1)——基础之后
- IP SAN与IB SAN
- 雷达模块感应技术,智能照明LED灯的应用,5.8G雷达感应模块
- NODA-GA-NHS ester CAS:1407166-70-4 大环配体配合物
- 回顾我的 2018 读书历程以及个人感悟,让我们一起期待更好的未来(本文耗时 8 个月。。。)
- matlab 直流无刷电机,无刷直流电机的matlab仿真.pdf