为什么c++编译测试第一个点的数据是对的儿上传是错的?
查看原帖
为什么c++编译测试第一个点的数据是对的儿上传是错的?
804412
zhaobingjun2010楼主2023/8/19 20:31
#include<bits/stdc++.h>
using namespace std;
int mu[150][150];
int vis[150];
bool vvis[150];
int to[150];
int n;
void dfs(int start,int end,int nnum){
	if(start==end){
		to[end]=nnum*vis[end];
		return;
	}
	for(int i=1;i<=n;i++){
		if(vvis[i]==false&&mu[start][i]!=0){
			vvis[i]=true;
			dfs(i,end,nnum+1);
			vvis[i]=false;
		}
	}
}
int main(){
	ios::sync_with_stdio(false);
	cin>>n;
	int x,y,z;
	for(int i=1;i<=n;i++){
		cin>>x>>y>>z;
		vis[i]=x;
		if(y){
			mu[i][y]=1;
			mu[y][i]=1;
		}
		if(z){
			mu[i][z]=1;
			mu[z][i]=1;
		}
	}
	int num,minn=114514;
	for(int i=1;i<=n;i++){
		memset(to,0,sizeof(to));
		memset(vvis,0,sizeof(vvis));
		for(int j=1;j<=n;j++){
			if(i!=j){
				vvis[i]=true;
				dfs(i,j,0);
			}
		}
		for(int i=1;i<=n;i++){
			num+=to[i];
		}
		minn=min(num,minn);
		num=0;
	}
	cout<<minn;
	return 0;
}

%dalao

2023/8/19 20:31
加载中...