20分求救,求救
  • 板块P1364 医院设置
  • 楼主zys180
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/8/18 12:11
  • 上次更新2023/10/27 14:48:31
查看原帖
20分求救,求救
537002
zys180楼主2022/8/18 12:11
#include<bits/stdc++.h>
using namespace std;
long long a[101][101]= {},vis[101][101]= {};
long long n,m=10000000;
long long bfs(long long x,long long y,long long ans) {
	long long s=100000001;
	if(x==y) {
		return ans;
	}
	for(long long i=1; i<=n; i++) {
		if(y!=i&&a[y][i]==1&&vis[y][i]==0&&vis[i][y]==0) {
			vis[y][i]=1;
			vis[i][y]=1;
			long long j=bfs(x,i,ans++);
			if(j!=0){
				s=min(s,j);
			}
			
			vis[y][i]=0;
			vis[i][y]=0;
		}
	}
	return s;
}
int main () {
	cin>>n;
	for(long long i=1; i<=n; i++) {
		long long r,t,y;
		cin>>r>>t>>y;
		a[i][y]=1;
		a[y][i]=1;
		a[i][t]=1;
		a[t][i]=1;
		a[i][i]=r;
	}
	for(long long i=1; i<=n; i++) {
		long long h=0;
		for(long long j=1; j<=n; j++) {
			if(j==i) {
				h+=0;
			} else {
				long long f=bfs(i,j,0);
				h+=f*a[j][j];
			}
		}
		m=min(h,m);
	}
	cout<<m+7;
	return 0;
}

1,3,4,5WA了,第二个AC了

2022/8/18 12:11
加载中...