P3396 RE实在想不通哪里越界了
  • 板块学术版
  • 楼主Womind
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/3 22:07
  • 上次更新2023/11/2 15:59:22
查看原帖
P3396 RE实在想不通哪里越界了
801322
Womind楼主2023/10/3 22:07
/*
    Name:
    Copyright:
    Author:
    Date: 2023/10/3 21:37:32
    Description: 根号分治 
*/
#include<bits/stdc++.h>
using namespace std;
#define for(i,a,b) for (int i = a; i <= b; i++)
const int N = 250001;
int n, m, a[N], b[500][500]; // 400!! 阶梯状 
int main(){
	cin >> n >> m;
	int q = sqrt(n);
	for (i,1,n) {
		scanf("%d", &a[i]);
		for (j,1,q) {
			b[j][i % j] += a[i];
		}
	}
	for (i,1,m) {
		getchar();
		char t = getchar(); 
		int x, y;
		scanf("%d%d", &x, &y);
		if (t == 'A') {
			y %= x;
			if (x <= q) printf("%d\n", b[x][y]);
			else {
				int ans = 0;
				while(y <= n) {
					ans += a[y];
					y += x;
				}
				printf("%d\n", ans);
			}
		}
		else {
			if (x <= q) {
				for(j,1,q) {
					b[j][x % j] += y - a[x];
				}				
			} 
			a[x] = y;
		}
	}
	return 0;
}

2023/10/3 22:07
加载中...