BFS为什么只10分
查看原帖
BFS为什么只10分
539031
ls2128606楼主2023/1/30 10:35
#include<bits/stdc++.h>
using namespace std;
long long a[1010][1010],vis[1010][1010],n,h,m=20000010,r,t,y;
long long bfs(long long x,long long y,long long ans) {
    long long s=200000010;
    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++) 
    {
    
        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++)
    {
       
        for(long long j=1; j<=n; j++) 
        {
            if(j!=i) 
            {
                long long f=bfs(i,j,0);
                h+=f*a[j][j];
            }
        }
        m=min(h,m);
    }
    cout<<m+5;
    return 0;
}
2023/1/30 10:35
加载中...