P1955 [NOI2015] 程序自动分析 求神犇找代码错误
  • 板块学术版
  • 楼主wl_16
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/7/14 09:47
  • 上次更新2023/11/3 09:58:29
查看原帖
P1955 [NOI2015] 程序自动分析 求神犇找代码错误
938873
wl_16楼主2023/7/14 09:47
#include<map>
#include<queue>
#include<iostream>
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 1e8 + 5;
const int maxm = 1e6 + 1;
struct tx{
    int x,y,e;
    friend bool operator < (tx a,tx b){
        return a.e<b.e;
	}
} now;
priority_queue<tx> q;
map<int,int> fa;
int n,m,a,b,c;
int find(int x){
    if(x!=fa[x]) fa[x]=find(fa[x]);
    return fa[x];
}
void hebing(int x,int y){
    int a1=find(x),a2=find(y);
    fa[a1]=a2;
}
int main(){
	int t;
	cin>>t;
	while(t--){
		bool flag=0;
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>now.x>>now.y>>now.e;
			q.push(now);
		}
		for(int i=1;i<=n*2;i++) fa[i]=i;
		for(int i=1;i<=n;i++){
			now=q.top();q.pop();
			if(now.e==1) hebing(now.x,now.y);
			else if(find(now.x)==now.y||find(now.y)==now.x){
				cout<<"NO"<<endl;flag=1;break;
			}
		}
		if(!flag)cout<<"YES"<<endl;
	}
	return 0;
}

为什么样例点都通过但却只有10分, 而且

for(int i=1;i<=n*2;i++) fa[i]=i;

这一句中为什么 n*2 写大一点就会一直YES

2023/7/14 09:47
加载中...