题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805066135879680

题意:给宴席排座位,有n个人,m个关系,k组询问,1表示为朋友,-1表示为敌人。询问时,两人为朋友而非敌人输出No problem,两人既不为敌人也不为朋友输出OK,两人为敌人但有共同的朋友输出OK but...,两人只有敌人关系输出No way。

思路:并查集,题目看着很绕,其实仔细看就会发现很简单。我们把有朋友关系的人并起来,但这个集合里也可能有敌人关系,然后用二维数组is[i][j]记录i,j是否是敌人,即两个人之间可能有4种关系:

  1. 有共同祖先,不敌对:No problem;
  2. 有共同祖先,敌对:OK but...
  3. 没有共同的祖先,不敌对:OK
  4. 没有共同的祖先,敌对:No way

AC代码:

 #include<bits/stdc++.h>
using namespace std; int root[],is[][],n,m,k; int getr(int kk){
if(root[kk]==kk) return kk;
else return root[kk]=getr(root[kk]);
} int main(){
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n;++i)
root[i]=i;
int a,b,c;
while(m--){
scanf("%d%d%d",&a,&b,&c);
if(c==){
int ar=getr(a),br=getr(b);
if(ar!=br)
root[br]=ar;
}
else
is[a][b]=is[b][a]=;
}
while(k--){
scanf("%d%d",&a,&b);
int ar=getr(a),br=getr(b);
if(ar==br&&!is[a][b]) printf("No problem\n");
else if(ar==br&&is[a][b]) printf("OK but...\n");
else if(ar!=br&&!is[a][b]) printf("OK\n");
else printf("No way\n");
}
return ;
}

pta l2-10(排座位)的更多相关文章

  1. [IOI2018] seats 排座位

    [IOI2018] seats 排座位 IOI2018题解 压缩状态思想很不错的 每次把原来的贡献减掉,新来的再加上 最多涉及10个点 注意: 1.去重 2.下标从0开始 3.线段树初始的最小值个数都 ...

  2. PAT l2-010 排座位 【并查集】

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...

  3. 团体程序设计天梯赛-练习集L2-010. 排座位

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...

  4. L2-010. 排座位

    L2-010. 排座位 题目链接:https://www.patest.cn/contests/gplt/L2-010 并查集 相关题目:L2-007. 家庭房产,L3-003. 社交集群 下午打的时 ...

  5. L2-010. 排座位(并查集)*

    L2-010. 排座位 参考博客 #include<iostream> #include<math.h> using namespace std; ]; ][]; int fi ...

  6. CCCC 排座位 图着色问题

    1排座位:https://www.patest.cn/contests/gplt/L2-010 2图着色问题 https://www.patest.cn/contests/gplt/L2-023 建图 ...

  7. 排座位&&Little Elephant And Permutation——排列dp的处理

    排列的问题,就是要把序列排个序,使之达到某种最优值或者统计方案数 dp可以解决部分排列问题. 通常的解决方案是,按照编号(优先级)排序决策,从左到右决策两种. 这里主要是第一个. 排座位• 有

  8. pat 团体天梯赛 L2-010. 排座位

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...

  9. CCCC L2-010. 排座位【并查集/分类讨论】

    L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位. ...

随机推荐

  1. Python基础7 面向对象编程进阶

    本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 经典 ...

  2. List转数组

    eg: List<Product> products = new ArrayList<Product>(); Product[] array = products.toArra ...

  3. Spring Cloud (6)config 客户端配置 与GitHub通信

    1. 配置yml 1.1 1.2 1.3 2. 提交yml 到git 3.新建项目 pom 4.新建bootstrap.yml (优先权比application.yml高) 5.bootstrap.y ...

  4. 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)

    ###本脚本在Suse11sp2当中验证正确 #!/bin/sh )) do echo -ne "\r$(date)" sleep 0.3 done ###关键在 echo 的 & ...

  5. beyondCompare工具使用

    1.下载beyondcompare  (从官网下载) 2.载入.class文件比对 参见: beyond compare 对class文件反编译及比较  (https://blog.csdn.net/ ...

  6. 查看已打包app的entitlements文件内容

    执行以下命令: codesign -d --ent :- /path/to/the.app https://developer.apple.com/library/content/technotes/ ...

  7. js 正则函数初级

    1.test :正则匹配字符串,如果成功则返回true,若果失败则返回false 格式:/正则表达式/.test(字符串) 默认吗匹配规则,区分大小写:如果不区分大小写,则加修饰符 i 例子: < ...

  8. Zeosdbo-Query使用

    with DataModule1.Zlxz_zy_Query do        begin          Close;          SQL.Clear;          SQL.Add( ...

  9. js 改变颜色值

    /** * 获取颜色值 */ const color2RGB = (color) => { if (typeof color !== 'string' || (color.length !== ...

  10. 转: jquery.qrcode.js生成二维码插件&转成图片格式

    原文地址: https://blog.csdn.net/u011127019/article/details/51226104 1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持can ...