计蒜客 蒜头君开公司 dfs 暴力搜_i++
给一组数据

6
10 11 12 11 9 11
11 9 10 13 11 12
12 10 11 10 13 9
9 14 9 10 10 11
10 10 9 11 12 11
10 7 10 10 10 8
54

题意:如上
思路:暴力搜索找出最小值即可。
有点像八皇后。

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<queue>
#include<cmath>
#include<cctype>
#include<stack>
#include<map>
#include<string>
#include<cstdlib>
#define ll long long
#define N 100010
using namespace std;
//const ll maxn = 1e2 + 5;
//ll a[maxn],b[maxn];
//bool vis[maxn];
//int ans[maxn];
//vector<int>v[maxn];
int n, m;
bool vis[1005]; //bool vis[maxn][maxn][2];
bool flag;
//int a[maxn][maxn];
int sum = 0;
int a[105][105];
int minn = 1e8;
void dfs(int x) {
if(x == n) {
minn = min(minn, sum);
return ;
}
for(int i = 0; i < n; i++) {
if(vis[i])
continue;
sum += a[x][i];
vis[i] = true;
dfs(x + 1);
vis[i] = false;
sum -= a[x][i];
}
/*sum+=a[x][y];
dfs(x+1,y+1);
dfs(x,y+1);
dfs(x,y-1);
vis[y]=false;
sum-=a[x][y];*/
}
int main() {
cin >> n;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
cin >> a[i][j];
dfs(0);
cout << minn << endl;
return 0;
}