C++学习之路 | PTA(天梯赛)—— L2-010 排座位 (25分)(带注释)(并查集)(精简)

L2-010 排座位 (25分)
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。
输入格式:

输入第一行给出3个正整数:N(≤100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2 关系,其中关系为1表示是朋友,-1表示是死对头。注意两个人不可能既是朋友又是敌人。最后K行,每行给出一对需要查询的宾客编号。
这里假设朋友的朋友也是朋友。但敌人的敌人并不一定就是朋友,朋友的敌人也不一定是敌人。只有单纯直接的敌对关系才是绝对不能同席的。
输出格式:

对每个查询输出一行结果:如果两位宾客之间是朋友,且没有敌对关系,则输出No problem;如果他们之间并不是朋友,但也不敌对,则输出OK;如果他们之间有敌对,然而也有共同的朋友,则输出OK but…;如果他们之间只有敌对关系,则输出No way。
输入样例:

7 8 4
5 6 1
2 7 -1
1 3 1
3 4 1
6 7 -1
1 2 1
1 4 1
2 3 -1
3 4
5 7
2 3
7 2
输出样例:

No problem
OK
OK but…
No way

#include<iostream>
using namespace std;
const int maxn = 101;
int pre[maxn]{ 0 };
int fr[maxn][maxn]{ 0 };//记录宾客是否为朋友,1表示为朋友,-1为敌对
int find(int x)//并查集模板,查找
{while (x != pre[x])x = pre[x];return x;
}
void merge(int x, int y)//并查集模板,合并
{int a = find(pre[x]);int b = find(pre[y]);if (a != b) pre[b] = a;
}
void init()//初始化pre数组
{for (int i = 1; i <= maxn; i++) pre[i] = i;
}int main()
{int n, m, k, x, y, st;//x,y,st分别记录宾客1,宾客2,是否为朋友init();cin >> n >> m >> k;for (int i = 0; i < m; i++){cin >> x >> y >> st;if (st == -1)//记录这对宾客为敌{fr[x][y] = st;fr[y][x] = st;}else merge(x, y);//朋友则合并}for (int i = 0; i < k; i++){cin >> x >> y;int a = find(x);int b = find(y);if (fr[x][y] != -1 && a == b)//非敌对关系,且为朋友{cout << "No problem" << endl;}else if (fr[x][y] != -1 && a != b)//非敌对关系,也不是朋友{cout << "OK" << endl;}else if (fr[x][y] == -1 && a == b)//敌对关系,是朋友的朋友{cout << "OK but..." << endl;}else//敌对关系,不是朋友{cout << "No way" << endl;}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

波士顿动力新年视频第一发,机器人狗能为朋友开门了!

来源&#xff1a;36氪概要&#xff1a;波士顿动力公司的那只黄色机器人狗SpotMini&#xff0c;你还记得吗&#xff1f;波士顿动力公司的那只黄色机器人狗SpotMini&#xff0c;你还记得吗&#xff1f;它上一次亮相是在去年11月&#xff0c;当时它还在一片后院的草地上恣意奔跑。…

Template Method 和 Strategy 模式

Template Method 和 Strategy 模式

Makefile详解——从入门到精通

转自ChinaUnix&#xff0c;作者gunguymadman&#xff0c;陈皓。链接地址&#xff1a;http://www.chinaunix.net/jh/23/408225.html 陈皓 CSDN 博客&#xff1a;http://blog.csdn.net/haoel/article/details/2886 http://blog.csdn.net/ruglcc/article/details/7814546 写的相…

实现了HTTP多线程下载

不是使用每连接一线程的技术&#xff0c;而是使用多路复用技术。作了一个分配算法。第一个HTTP Request返回取得ContentLength之后&#xff0c;如果使用多个连接下载&#xff0c;则需要一个分配算法&#xff0c;分配每个Request所对应的Range。分配的部分可能是一个连续的块&am…

C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简)

L2-007 家庭房产 (25分) 给定每个人的家庭成员和其自己名下的房产&#xff0c;请你统计出每个家庭的人口数、人均房产面积及房产套数。 输入格式&#xff1a; 输入第一行给出一个正整数N&#xff08;≤1000&#xff09;&#xff0c;随后N行&#xff0c;每行按下列格式给出一个…

是时候不把智能手机叫做电话了:移动AI时代来临!

来源&#xff1a;EET电子工程专辑概要&#xff1a;全新的iPhone X集成了用于人脸识别的神经引擎&#xff0c;但这仅仅是一个开始。全新的iPhone X集成了用于人脸识别的神经引擎&#xff0c;但这仅仅是一个开始。嵌入式神经引擎和专用智能处理器在边缘设备上实现了人工智能(AI)&…

C#中MSMQ消息队列测试疑问

今天我通过C#程序向某台机器发送MQ消息队列,并且已经将目标机器的消息队列设置消息存储限额无限制.我持续的把消息发送到目标机器上,发现只能发送1000条消息,其他的消息无法接收到!!!于是我尝试通过程序把消息队列的一些消息删除掉,最后发现消息队列又多了起来,但是到1000条的时…

Facade 和 Mediator 模式

Facade 和 Mediator 模式

C++学习之路 | PTA(甲级)—— 1114 Family Property (25分)(带注释)(并查集)(精简)

1114 Family Property (25分) This time, you are supposed to help us collect the data for family-owned property. Given each person’s family members, and the estate&#xff08;房产&#xff09;info under his/her own name, we need to know the size of each fami…

拥抱AI大趋势,ARM发布两款AI芯片架构

来源&#xff1a;量子位概要&#xff1a;ARM发布了两款针对移动终端的AI芯片架构&#xff0c;物体检测&#xff08;Object Detection&#xff0c;简称OD&#xff09;处理器和机器学习&#xff08;Machine Learning&#xff0c;简称ML&#xff09;处理器。今天&#xff0c;ARM发…

Ubuntu 安装 mysql、sqlite3、postgresql

NAVICAT 官网&#xff1a;http://www.navicat.com.cn/products NAVICAT16 PREMIUM NAVICAT16 &#xff1a;http://zzzzzz.me/post-73329.html Xmanager &#xff1a;https://www.xshellcn.com/ 1、Ubuntu 安装 mysql ubuntu上安装MySQL非常简单只需要几条命令就可以完成。 1…

牡丹园

其实从少林寺去洛阳非常近&#xff0c;当时想赶当天晚上的火车去另一个地方&#xff0c;所以从少林寺又回到郑州火车站&#xff0c;结果没有票&#xff0c;于是取消了。决定在郑州住一晚第二天去洛阳。 看到洛阳路边隔断种的都是这种植物&#xff0c;星星点点很是好看&#xff…

Singleton 和 Monostate 模式

Singleton 和 Monostate 模式 怎样才能使得两个实例表现得像一个对象呢&#xff1f;很简单&#xff0c;只要把所有的变量都变成静态变量即可。 public class Monostate {private static int itsX 0;public Monostate() {}public void setX(final int x) {itsX x;}public int…

十张图看懂未来大数据世界

作者&#xff1a;薄云借智来源&#xff1a;钱塘江大数据随着互联网云时代的来临&#xff0c;大数据与云计算就像一个硬币的正反两面&#xff0c;势必会影响到社会生活的方方面面&#xff0c;改变我们现有的规则和秩序。伴随着大数据与云计算产业的不断发展&#xff0c;未来到底…

MediaWiki初探:安装及使用入门

来源&#xff1a;http://blog.csdn.net/wangnan537/article/details/37743497 MediaWiki是著名的开源wiki引擎&#xff0c;全球最大的wiki项目维基百科(百科词条协作系统)是使用MediaWiki的成功范例&#xff0c;MediaWiki的最大作用在于对知识的归档&#xff0c;可用于构建企业…

科学释梦——意识窗口在记忆模块间的穿越

作者&#xff1a;谢平 中国科学院大学教授 唐代诗人李白曾说&#xff0c;“浮生若梦&#xff0c;为欢几何”&#xff0c;将人生喻为短暂的梦幻。有些人生如梦&#xff0c;有些梦若人生&#xff0c;还有梦想人生......梦——五彩缤纷&#xff0c;诡异神奇&#xff0c;我们每晚都…

asp.net 一个简易权限的小例子设计

asp.net 一个简易权限的小例子设计 近日在阅读一本asp.net的书时&#xff08;国人写的&#xff09;&#xff0c;其中提到了一个简易权限的小例子&#xff0c;感觉说的还是比较清楚&#xff0c;有点代表性&#xff0c;故在此简单介绍下其实现原理其核心是建立起用户、角色&#…

linux 内核与用户空间通信之netlink使用方法

Linux中的进程间通信机制源自于Unix平台上的进程通信机制。Unix的两大分支AT&T Unix和BSD Unix在进程通信实现机制上的各有所不同&#xff0c;前者形成了运行在单个计算机上的System V IPC&#xff0c;后者则实现了基于socket的进程间通信机制。同时Linux也遵循IEEE制定的P…