11pts求调!
查看原帖
11pts求调!
730192
gaomingyang101011楼主2024/7/10 16:23
#include<iostream>
using namespace std;
const long long N=1e5+5;
const long long C=1e9;
long long n,m;
struct node{
	long long u,v,o;
}a[N];
long long f[N];
void td(int i){
	if(i>m){
		bool pd=0;
		for(int j=1;j<=m;j++)
			if(min(f[a[i].u],f[a[i].v])!=a[i].o){
				cout<<a[i].u<<" "<<a[i].v<<"     ooo"<<endl;
				pd=1;
				break;
			}
		if(pd!=0) return;
		else{
			for(int j=1;j<=n;j++){
		 		if(f[j]!=0) cout<<f[j]<<" ";
		 		else cout<<C<<" ";
			}
			exit(0);
		}
		
	}
	if((f[a[i].u]==0||f[a[i].u]==a[i].o)&&(f[a[i].v]==0||f[a[i].v]==a[i].o)) f[a[i].u]=a[i].o,f[a[i].v]=a[i].o,td(i+1);
	else{
		long long b=f[a[i].u];
		f[a[i].u]=a[i].o;
		td(i+1);
		f[a[i].u]=b;
		f[a[i].v]=a[i].o;
		td(i+1);
		f[a[i].u]=a[i].o;
		td(i+1);
	}
	
	return;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++) cin>>a[i].u>>a[i].v>>a[i].o;
	td(1);
	return 0;
}
2024/7/10 16:23
加载中...