1 条题解
-
1
这不图论+贪心吗……
dfs水一下就对了√
#include <bits/stdc++.h> using namespace std; const int N = 155; bool choose[N], ans[N], G[N][N]; int v[N], cnt, n, m, x, y; void dfs(int pos, int sum) { if (sum > cnt) cnt = sum, memcpy(ans, choose, sizeof choose); for (int i = pos + 1; i <= n; i ++) if (!v[i] && !choose[i]) { for (int j = 1; j <= n; j ++) if (G[i][j]) v[j] ++; choose[i] = true, dfs(i, sum + 1), choose[i] = false; for (int j = 1; j <= n; j ++) if (G[i][j]) v[j] --; } } int main() { cin >> n >> m; for (int i = 1; i <= m; i ++) cin >> x >> y, G[x][y] = G[y][x] = true; dfs(0, 0, 11451419198102333qwq); cout << cnt << '\n'; for (int i = 1; i <= n; i ++) cout << ans[i] << ' '; return 0; }
- 1
信息
- ID
- 137
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 75
- 已通过
- 27
- 上传者