您当前的位置: 首页 > 

MangataTS

暂无认证

  • 3浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

L2-010 排座位(并查集)

MangataTS 发布时间:2022-03-28 21:03:59 ,浏览量:3

视频讲解

https://www.bilibili.com/video/BV13u411y7Ss

题目链接

https://pintia.cn/problem-sets/994805046380707840/problems/994805066135879680

思路

对于朋友和朋友之间的关系我们通过并查集维护即可,然后对于敌人之间的关系,我们只需要用一个二维数组或者使用map就能维护,因为只有直接敌对关系才是敌人,然后对于每一次询问我们就根据他们俩的朋友关系、敌对关系分类讨论即可

代码
#include
using namespace std;
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair
#define INF 0x3f3f3f3f

const int N = 1e2+10;

int fa[N],n,m,k;
bool enmy[N][N];
int find(int x){
	return x==fa[x]?x:find(fa[x]);
}

int main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m>>k;
	for(int i = 1;i u>>v>>w;
		if(w + 1) {
			u = find(u);
			v = find(v);
			fa[v] = u;
		} else {
			enmy[u][v] = enmy[v][u] = true;
		}
	}
	for(int i = 1;i >u>>v;
		if(enmy[u][v]) {
			if(find(u) == find(v)) cout            
关注
打赏
1665836431
查看更多评论
0.0491s