数据太水请求加强
  • 板块P3396 哈希冲突
  • 楼主sfmmdm
  • 当前回复6
  • 已保存回复6
  • 发布时间2020/8/29 21:30
  • 上次更新2023/11/5 13:59:46
查看原帖
数据太水请求加强
82124
sfmmdm楼主2020/8/29 21:30
#include <bits/stdc++.h>
using namespace std;
int a[150005],f[400][150005];
int main() {
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1; i<=n; i++) {
        scanf("%d",a+i);
        for(int j=1; j*j*j<=n; j++) {
            f[j][i%j]+=a[i];
        }
    }
    char cmd;
    int x,y;
    for(int i=1; i<=m; i++) {
        cin>>cmd>>x>>y;
        if(cmd=='A') {
            if(x*x*x<=n) {
                printf("%d\n",f[x][y]);
            } else {
                int ans=0;
                for(int j=y; j<=n; j+=x) {
                    ans+=a[j];
                }
                printf("%d\n",ans);
            }
        }
        if(cmd=='C') {
            for(int j=1; j*j*j<=n; j++) f[j][x%j]+=(y-a[x]);
            a[x]=y;
        }
    }
    return 0;
}

RT,按题目要求模数是在15万的范围内的,我这里用立方计算,没开 long long 也给我过了。

2020/8/29 21:30
加载中...