4 条题解
-
1
// https://dashoj.com/p/80 #include <bits/stdc++.h> #define N 50 using namespace std; typedef long long ll; int n, g[N][N], e; // bool gb[N]; ll ans = 0x3f3f3f3f; void dfs(int x, int a, ll an) { if (a == e) { ans = min(an + g[x][n], ans); return; } for (int i = 2; i <= e; i++) { if (i == x) continue; if (!gb[i]) continue; gb[i] = false; if (an + g[x][i] < ans) dfs(i, a + 1, an + g[x][i]); gb[i] = true; } } int main() { ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); // fill(&gb[0], &gb[0] + N, true); // cin >> n; // e = n - 1; // gb[1] = false; for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) cin >> g[i][j]; // dfs(1, 1, 0); // cout << ans << endl; // return 0; }
信息
- ID
- 80
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 159
- 已通过
- 27
- 上传者