11 条题解
-
0
#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
- 上传者