AT D
  • 板块学术版
  • 楼主ywhyc
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/3/2 21:44
  • 上次更新2024/3/3 09:05:20
查看原帖
AT D
680036
ywhyc楼主2024/3/2 21:44

用哈希解决,思路简单,但WA了,跪求大佬求调

#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;
}
2024/3/2 21:44
加载中...