社区讨论
WA on #3求调
P1955[NOI2015] 程序自动分析参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lue2rsj0
- 此快照首次捕获于
- 2024/03/30 20:34 2 年前
- 此快照最后确认于
- 2024/03/30 22:26 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
const int maxn=19260817;
int fa[maxn],siz[maxn];
int fd(int x){
if(!fa[x])fa[x]=x;
return x==fa[x]?x:fa[x]=fd(fa[x]);
}
void union_(int u,int v){
if(!fa[u])fa[u]=u;
if(!fa[v])fa[v]=v;
int fdu=fd(u),fdv=fd(v);
if(fdu==fdv)return;
if(siz[fdu]>siz[fdv])swap(fdu,fdv);
fa[fdu]=fdv;siz[fdv]+=siz[fdu];
}
struct Input{
int i,j,op;
}input[100007];
bool cmp(Input a,Input b){
return a.op>b.op;
}
int t,n;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d%d%d",&input[i].i,&input[i].j,&input[i].op);
sort(input+1,input+n+1,cmp);bool flag=true;
for(int i=1;i<=n;i++){
int ii=input[i].i,ij=input[i].j,iop=input[i].op;
if(iop)union_(ii%maxn,ij%maxn);
else if(fd(ii%maxn)==fd(ij%maxn)){flag=false;printf("NO\n");break;}
}if(flag)printf("YES\n");
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...