zoukankan      html  css  js  c++  java
  • [LG3396]哈希冲突

    题意:一个序列A,支持单点修改,查询位于(xmod p=y)的所有A[x]的和。

    算见注

    #include<cstdio>
    #include<cmath>
    using namespace std;
    const int N=150004;
    int n,m;
    int a[N];
    int tab[1000][1000];
    int main(){
        scanf("%d%d",&n,&m);
        int p=pow(n,0.3333);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            for(int j=1;j<=p;j++)tab[j][i%j]+=a[i];
        }
        for(int i=1;i<=m;i++){
            char op[5];
            int x,y;
            scanf("%s%d%d",op,&x,&y);
            if(op[0]=='A'){
                if(x<=p)printf("%d
    ",tab[x][y]);
                else {
                    int ans=0;
                    for(int j=y;j<=n;j+=x)ans+=a[j];
                    printf("%d
    ",ans);
                }
            }else{
                for(int j=1;j<=p;j++)tab[j][x%j]-=a[x];
                for(int j=1;j<=p;j++)tab[j][x%j]+=y;
                a[x]=y;
            }
        }
    
        return 0;
    }
    /*
     * 对模数小于p的直接建池,大于的直接暴力
     */
    
    
  • 相关阅读:
    原生JS中Ajax的使用方法
    back-to-top回到顶部
    atom插件
    git 命令操作
    常用font-family
    上传按钮美化
    mongodb
    GraphicsMagick命令
    enctype=“multipart/form-data”详解
    操作符
  • 原文地址:https://www.cnblogs.com/sshwy/p/11046514.html
Copyright © 2011-2022 走看看