11 条题解

  • 0
    @ 2025-3-26 0:29:35

    #include<bits/stdc++.h> using namespace std; #define int long long const int inf=2e7+10; int n,vis[20],dis[20][20],ans=inf,sum; void dfs(int now,int step){ int flag=0; if(stepn-1){ if(sum<ans){ ans=sum; } return; } for(int i=1;i<=n;i++){ if(dis[now][i]!=0&&!vis[i]){ if(sum+dis[now][i]>ans)continue; if(in&&step!=n-2)continue; sum+=dis[now][i]; vis[i]=1; dfs(i,step+1); vis[i]=0; sum-=dis[now][i]; } } } signed main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n; vis[1]=1; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>dis[i][j]; } } dfs(1,0); cout<<ans; return 0; }

    信息

    ID
    80
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    368
    已通过
    88
    上传者