社区讨论

基础赛T3 10pts求助

学术版参与者 4已保存回复 13

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
13 条
当前快照
1 份
快照标识符
@lo1oca2m
此快照首次捕获于
2023/10/23 00:19
2 年前
此快照最后确认于
2023/11/03 01:00
2 年前
查看原帖
rt.
CPP
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
#include <iomanip>
#include <string>
#include <map>
#include <stack>
#include <queue>
#include <set>
#include <algorithm>
using namespace std;
typedef long long ll;
template <typename T>
void read(T &x) {
	x = 0;
	int f = 1;
	char ch = getchar();
	while (!isdigit(ch)) {
		if (ch == '-') f = -f;
		ch = getchar();
	}
	while (isdigit(ch)) {
		x = x * 10 + (ch - '0');
		ch = getchar();
	}
	x *= f;
}
template <typename T>
void print(T x) {
	if (x < 0) x = -x, putchar('-');
	if (x < 10) putchar(x + '0');
	else {
		print(x / 10);
		putchar(x % 10 + '0');
	}
}
ll n, m, q, k, r[200010], c[200010];
ll ans;
int main() {
//	freopen("paint2.in", "r", stdin);
//	freopen(".out", "w", stdout);
	read(n);read(m);read(q);read(k);
	while (q--) {
		ll op, x;
		read(op);read(x);
		if (op == 1) ++r[x];
		else ++c[x];
	}
	sort(c + 1, c + m + 1);
	ll y = 0;
	for (ll i = 1; i <= m; ++i) if (!c[i]) y = i;
	for (ll i = 1; i <= n; ++i) {
		ll x = lower_bound(c + 1, c + m + 1, k - r[i]) - c - 1ll;
		ans += x;
		if (!r[i]) {
			ans -= y;
		}
	}
	print(ans);
	return 0;
}

回复

13 条回复,欢迎继续交流。

正在加载回复...