社区讨论

求救,全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 条回复,欢迎继续交流。

正在加载回复...