标签:its scan code edit space ima com width scanf
出门左转https://arc085.contest.atcoder.jp/tasks/arc085_d
参考Editorial
假设当前有火鸡集合 $S$,已经过了 $t-1$ 步,我们来考虑第 $t$ 步对 $S$ 的影响:
用bitset维护 $N$ 个集合,然后 $\mathcal O(NM)$ 处理出集合。
#include <bits/stdc++.h> using namespace std; int n,m; bitset<400> S[400]; int x[200005], y[200005]; bool no[200005]; int main() { scanf("%d%d", &n, &m); for (int i=0; i<n; i++) S[i][i] = 1; for (int i=0; i<m; i++) scanf("%d%d", &x[i], &y[i]), --x[i], --y[i]; for (int i=m-1; i>=0; i--) { for (int j=0; j<n; j++) { if (S[j][x[i]] && S[j][y[i]]) no[j] = 1; else if (S[j][x[i]]) S[j][y[i]] = 1; else if (S[j][y[i]]) S[j][x[i]] = 1; } } int ans = 0; for (int i=0; i<n-1; i++) for (int j=i+1; j<n; j++) if (!no[i] && !no[j] && !(S[i] & S[j]).count()) { ++ans; } printf("%d\n", ans); return 0; }
标签:its scan code edit space ima com width scanf
原文地址:https://www.cnblogs.com/mchmch/p/atcoder-agc216e.html