dfs80TLE求调
查看原帖
dfs80TLE求调
1272259
cgxd楼主2024/7/7 16:12
#include<bits/stdc++.h>
using namespace std;
int n, ans = 1e9;
vector<vector<int>> v(1);
bitset<25> vis;
void dfs(int a, int b, int c){
	if(c > ans)
		return;
	if(b == n){
		ans = min(ans, v[a][1] + c);
		return;
	}for(int i = 2; i <= n; ++i){
		if(!vis[i] and i != a){
			vis.set(i);
			dfs(i, b + 1, v[a][i] + c);
			vis.reset(i);
		}
	}return;
}signed main(){
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i){
		vector<int> a(1);
		for(int j = 1; j <= n; ++j){
			int k;
			scanf("%d", &k);
			a.push_back(k);
		}v.push_back(a);
	}dfs(1, 1, 0);
	printf("%d", ans);
	return 0;
}
2024/7/7 16:12
加载中...