欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Codeforces Round 932 (Div. 2) ABCD-D. Exam in MAC

最编程 2024-03-10 15:17:05
...

题意:给定一个大小为 \(n\) 的不可重集 \(s\) 和整数 \(c\),统计满足以下所有条件的 \((x, y)\) 对数。

  • \(0 \leq x \leq y \leq c\)
  • \(x + y\) 不在集合内。
  • \(y - x\) 不在集合内。

简单的容斥。
\(Ans = U - \{x + y \in s\} - \{y - x \in s\} + \{x + y \in s\} \cap \{y - x \in s\}\)

最后一部分的交集的充要条件为两元素奇偶性相同,直接统计即可。

void solve() {
	ll n, c; cin >> n >> c;
	ll ans = (c + 2) * (c + 1) / 2;
	int cnt[2] = {0, 0};
	rep(i, 1, n) {
		int x; cin >> x;
		ans -= (x / 2 + 1);
		ans -= (c - x + 1);
		ans += ++ cnt[x & 1];
	}
	cout << ans << '\n';
}