社区讨论
求救,全RE了,仅有10分,样例都没问题,但是1e5就炸了
P1955[NOI2015] 程序自动分析参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @ltkfalad
- 此快照首次捕获于
- 2024/03/10 02:32 2 年前
- 此快照最后确认于
- 2024/03/10 10:29 2 年前
CPP
// Problem:
// P1955 [NOI2015] 程序自动分析
//
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P1955
// Memory Limit: 500 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<string>
#include<cmath>
using namespace std;
#define endl '\n'
int _;
const int N=1e5;
int fa[N*2+2];
int find(int x){
if(x!=fa[x]) fa[x]=find(fa[x]);
return fa[x];
}
void solve(){
int n;cin>>n;
vector<int> a(n+1);
vector<int> b(n+1);
for(int i=1;i<=2*N;++i) fa[i]=i;
int cnt=0;
for(int i=1;i<=n;++i){
int x,y,z;cin>>x>>y>>z;
if(z==1){
fa[find(x+N)]=find(y);
fa[find(y+N)]=find(x);
}
else{
a[++cnt]=x;
b[cnt]=y;
}
}
for(int i=1;i<=cnt;++i){
if(find(a[i])==find(b[i])) continue;
else{
cout<<"NO"<<endl;return;
}
}
cout<<"YES"<<endl;
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>_;
while(_--){
solve();
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...