C128 并查集+离散化 P1955 [NOI2015] 程序自动分析

视频链接:C128 并查集+离散化 P1955 [NOI2015] 程序自动分析_哔哩哔哩_bilibili

 

 

P1955 [NOI2015] 程序自动分析 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

复制代码
// 并查集+离散化
#include <iostream>
#include <unordered_map>
using namespace std;

const int N=100005;
int T,n,cnt;
int a[N],b[N],e[N];
int p[N*2];
unordered_map<int,int> mp;

int get(int x){ //离散化
  if(mp.count(x)==0) mp[x]=++cnt;
  return mp[x];
}
int find(int x){
  return p[x]==x?x:p[x]=find(p[x]);
}
int main(){
  scanf("%d",&T);
  while(T--){
    cnt=0; mp.clear();
    scanf("%d",&n);
    for(int i=1;i<=n*2;i++) p[i]=i;
    for(int i=1;i<=n;i++){
      scanf("%d%d%d",&a[i],&b[i],&e[i]);
      a[i]=get(a[i]); b[i]=get(b[i]);
    }
    for(int i=1;i<=n;i++) //合并集合
      if(e[i]==1){
        int x=find(a[i]),y=find(b[i]);
        if(x!=y) p[x]=y;
      }
    bool flag=1;
    for(int i=1;i<=n;i++) //判断矛盾
      if(e[i]==0&&find(a[i])==find(b[i])){
        flag=0; break;
      }
    flag?puts("YES"):puts("NO");
  }
}
复制代码

 

posted @   董晓  阅读(176)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示