社区讨论

AT D

学术版参与者 3已保存回复 3

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@lta4xxsx
此快照首次捕获于
2024/03/02 21:44
2 年前
此快照最后确认于
2024/03/03 09:05
2 年前
查看原帖
用哈希解决,思路简单,但WA了,跪求大佬求调
CPP
#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int N=2e5+5,MAX=1e6,moda=81919,modb=70311,modc=80391,modd=98765;
int sum[N],ta[MAX],tb[MAX],tc[MAX],td[MAX];
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,m,ans=1;
	cin>>n>>m;
	ta[0]=n;
	tb[0]=n;
	tc[0]=n;
	td[0]=n;
	for(int i=1;i<=m;i++){
		int a,b;
		cin>>a>>b;
		ta[sum[a]%moda]--;
		tb[sum[a]%modb]--;
		tc[sum[a]%modc]--;
		td[sum[a]%modd]--;
		if(ta[sum[a]%moda]==0||tb[sum[a]%modb]==0||tc[sum[a]%modc]==0||td[sum[a]%modd]==0){
			ans--;
		}
		sum[a]+=b;
		ta[sum[a]%moda]++;
		tb[sum[a]%modb]++;
		tc[sum[a]%modc]++;
		td[sum[a]%modd]++;
		if(ta[sum[a]%moda]==1||tb[sum[a]%modb]==1||tc[sum[a]%modc]==1||td[sum[a]%modd]==1){
			ans++;
		}
		cout<<ans<<"\n";
	}
	return 0;
}

回复

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

正在加载回复...