gplt L2-010. 排座位(普通并查集)
来源:互联网 发布:郑州网络推广外包 编辑:程序博客网 时间:2024/04/27 23:27
https://www.patest.cn/contests/gplt/L2-010
题意:中文题。
思路:刚开始一看两者之间关系有多种,还以为是带权并查集,后来想想天梯赛不都是裸题么。。只需要将是朋友关系的合并成一个集合,非朋友关系的用矩阵表达,两判断条件相与即可。
ps:晕着头敲的,起太早了。。
#include <stdio.h>#include <algorithm>#include <string.h>#include <iostream>using namespace std;typedef long long ll;const int N = 105;const int INF = 0x3f3f3f3f;int pre[N], relation[N][N];int Find(int x){ int r = x; while(r != pre[r]) r = pre[r]; int i = x; while(pre[i] != r) { int tmp = pre[i]; pre[i] = r; i = tmp; } return r;}void Union(int p1, int p2){ int x = Find(p1); int y = Find(p2); if(x != y) { pre[x] = y; }}void init(){ memset(relation, 0, sizeof(relation)); for(int i = 1; i <= N; i++) pre[i] = i;}int main(){ // freopen("in.txt", "r", stdin); int n, m, k, x, y, val; while(~scanf("%d%d%d", &n, &m, &k)) { init(); for(int i = 1; i <= m; i++) { scanf("%d%d%d", &x, &y, &val); relation[x][y] = relation[y][x] = val; if(val == 1) Union(x, y); } for(int i = 1; i <= k; i++) { scanf("%d%d", &x, &y); if(Find(x)==Find(y) && relation[x][y]!=-1 && relation[y][x]!=-1) printf("No problem\n"); else if(Find(x)!=Find(y) && relation[x][y]!=-1 && relation[y][x]!=-1) printf("OK\n"); else if(Find(x)==Find(y) && (relation[x][y]==-1 || relation[y][x]==-1)) printf("OK but...\n"); else if(Find(x)!=Find(y) && relation[x][y]==-1 && relation[y][x]==-1) printf("No way\n"); } } return 0;}
0 0
- gplt L2-010. 排座位(普通并查集)
- GPLT L2-010. 排座位【并查集】
- L2-010. 排座位-PAT团体程序设计天梯赛GPLT(并查集)
- L2-010. 排座位 (并查集)
- PAT - L2-010. 排座位(并查集)
- L2-010. 排座位(并查集)
- PAT L2-010. 排座位(并查集)
- L2-010. 排座位——>并查集
- pat L2-010. 排座位 floyd 或 并查集
- L2-010. 排座位 (并查集简单应用)
- PAT L2-010. 排座位 并查集+数组
- L2-010. 排座位(并查集水题)
- 天梯赛L2-010排座位---并查集
- 并查集Java入门实例理解-L2-010. 排座位-howManyTables
- 团体程序设计天梯赛L2-010 排座位(并查集)
- CCCC/GPLT L2-010 排座位
- PATL2-010. 排座位-并查集
- 排座位 (并查集)
- [校内测试]祖先(DP)
- 一些tips关于使用LibreOffice
- Toolbar 单击,Recyclerview 跳到顶部
- Easypack容器系列之:Nexus 3:Maven仓库管理
- Gradle入门(一)Gradle简介
- gplt L2-010. 排座位(普通并查集)
- 【面经】记阿里巴巴校招一轮电话面试
- win下配置python环境及相应的包
- 代码调试技巧小集合(C语言描述,但C/C++/Pascal通用)
- shell 学习
- UVA 1664 Conquer a New Region (并查集+贪心)
- Linux环境下部署tomcat中间件
- JS导出Word——修正jquery.wordexport.js不支持IE8问题
- 每天一个 Linux 命令(24):Linux 文件类型与扩展名