赛时的恶心代码
查看原帖
赛时的恶心代码
755689
ACtheQ楼主2023/8/27 19:26

思路

用map存每行,累加mp[k-Rol[i]]

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=200005;
int Col[N];
int Rol[N];
signed main()
{
	int n,m,q,k;
	cin>>n>>m>>q>>k;
	map<int,int> mp;
	while(q--)
	{
		int op;
		int x;
		cin>>op>>x;
		if(op==1) 
		{
			Rol[x]++;
			mp[Rol[x]]++;
		}
		if(op==2) Col[x]++; 
	}
	int ans=n*m; 
	for(int i=1;i<=n;i++) 
	{
		//cout<<Col[i]<<" ";
		if(Rol[i]==0) ans--;
	}
	for(int i=1;i<=n;i++)
	{
		if(k>=Col[i])  ans-=mp[k-Col[i]];
	}
	cout<<ans;
	return 0;
}

2023/8/27 19:26
加载中...