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<cstdio>
using namespace std;
int pre[501];
int edge[102][102];
int find(int x){    //寻找根节点 return pre[x] == x ? x : find(pre[x]);
}
void join(int x,int y){int fx = find(x);int fy = find(y);if(fx != fy){pre[fx] = fy;}
}
int n,m,k;
int x,y,z;
void init()
{for(int i = 1;i <= n;i ++)pre[i] = i;
}
int main(){scanf("%d%d%d",&n,&m,&k);init();for(int i = 1;i <= m; i++){scanf("%d %d %d",&x,&y,&z);edge[x][y] = edge[y][x] = z;if(z == 1)join(x,y);}while(k--){scanf("%d%d",&x,&y);int fx = find(x);int fy = find(y);if(fx == fy && edge[x][y]==-1)puts("OK but...");else if(fx == fy && edge[x][y] != -1)puts("No problem");else if(fx != fy && edge[x][y] == -1)puts("No way");elseputs("OK"); }return 0;
} 

L2-010 排座位 (25 分)相关推荐

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

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

  2. 7-14 排座位 (25 分)

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

  3. 【CCCC】L2-010 排座位 (25分),,并查集+二维矩阵判定关系

    problem L2-010 排座位 (25分) 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位.无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编 ...

  4. 7-10 排座位 (25分)(并查集)

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

  5. 【Java】7-5 实验室使用排期 (25分)(List排序)

    7-5 实验室使用排期 (25分)(List排序) 受新冠疫情影响,当前大家的活动都必须注意保持充分的社交距离,国家实验室的使用也同样受到了严格的限制.假设规定任何一个时间点上,实验室内最多只能有 1 ...

  6. CCCC 天梯赛-5-10 排座位

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

  7. 7-2 排座位 (25 分)

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

  8. c语言寻找大富翁,PTA 7-38 寻找大富翁(25 分)解法(C/C++)暴力快排/精准堆排 解法...

    7-38 寻找大富翁 (25分) 胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人.假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁. 输入格式: 输入首 ...

  9. 某大学图书馆,共有25排座位,每排10个,要求显示前n排的座位号

    题目描述 某大学图书馆,共有25排座位,每排10个,要求显示前n排的座位号 输入 输入n 输出 显示前n排座位号 样例输入 10 样例输出 01-01 01-02 01-03 01-04 01-05 ...

  10. 【CCCC】L2-022 重排链表 (25分),,链表遍历

    problem L2-022 重排链表 (25分) 给定一个单链表 L ​1 ​​ →L ​2 ​​ →⋯→L ​n−1 ​​ →L ​n ​​ ,请编写程序将链表重新排列为 L ​n ​​ →L ​ ...

最新文章

  1. Photoshop CS6软件安装教程
  2. 视频码率,帧率和分辨率的区别
  3. WEB页面自打开的响应顺序
  4. Vue单文件组件TypeScript写法
  5. uiautomatorviewer链接不到android模拟器 报Error while obtaining UI hierarchy XML file: com.android
  6. ddmmyy日期格式是多少_如何用SAS读取月份为英文缩写并且格式为ddmmyy的日期数据...
  7. Show出你的高超技能 首届“中国高性能云计算创新大赛”要开赛啦!
  8. 基于LayUI使用FullCalendar实现日程管理
  9. 网页中漂浮的图片代码
  10. 俄语入门难不难-大舌音难学吗-弹舌难学吗
  11. 品商业模式[摘自xiewen网络业游戏规则]
  12. 数学建模推国一最终省一经验总结
  13. 自动驾驶算法详解(8):特斯拉Tesla决策规划算法Planning解析下
  14. Excel数据上传并且导入数据库
  15. JSP+MYSQL+SSH医疗器械管理系统租赁
  16. 天下武功,唯快不破 | OptiPlex 7070仅售3339元,戴尔小企业官网秒杀大战等你来参战!...
  17. 2020年学习工作总结
  18. Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution
  19. CX-TGK01型微电脑时间控制开关设置定时开关
  20. 精彩全记录 100个最佳的Linux站点推荐(一)

热门文章

  1. strcat函数使用中出现的问题
  2. elasticsearch 数据类型_ElasticSearch学习笔记
  3. 解决centos7 ssh连接慢的问题
  4. Win10周年升级新增52000个emoji表情
  5. backbond Model实现
  6. es6 babel编译
  7. 若无云,岂有风——词语语义相似度计算简介
  8. php函数strrchr、substr、is_dir、unlink
  9. 随风潜入夜,润物细无声
  10. 句柄的本质(整理-收藏) 选择自 feijj2002_ 的 Blog