社区讨论

本地和洛谷IDE都没问题,提交全部RE......

P3948数据结构参与者 2已保存回复 9

讨论操作

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

当前回复
9 条
当前快照
1 份
快照标识符
@lo7mp6bn
此快照首次捕获于
2023/10/27 04:20
2 年前
此快照最后确认于
2023/10/27 04:20
2 年前
查看原帖
RT
CPP
#include<bits/stdc++.h>
using namespace std;
#define N 80100
int sum[N],dif[N];
signed main(){
    //freopen(".in","r",stdin);
    //freopen("problem.out","w",stdout);
    int n,q,mod,minn,maxx;
    scanf("%d%d%d%d%d",&n,&q,&mod,&minn,&maxx);
    while(q--){
        char c;
        int l,r;
        getchar();
        scanf("%c%d%d",&c,&l,&r);
        //cout<<c<<" "<<l<<" "<<r<<" ";
        if(c=='A'){
            int x;
            scanf("%d",&x);
            //cout<<x<<endl;
            dif[l]+=x;
            dif[r+1]-=x;
        }
        else{
            int now=0,ans=0;
            for(int i=1;i<l;i++)now+=dif[i];
            for(int i=l;i<=r;i++){
                now+=dif[i];
                int tmp=now*i%mod;
                if(tmp>=minn&&tmp<=maxx)ans++;
            }
            printf("%d\n",ans);
        }
    }
    for(int i=1;i<=n;i++){
        dif[i]+=dif[i-1];
        int tmp=dif[i]*i%mod;
        if(tmp>=minn&&tmp<=maxx)sum[i]++;
        sum[i]+=sum[i-1];
    }
    scanf("%d",&q);
    while(q--){
        int l,r;
        scanf("%d%d",&l,&r);
        //cout<<l<<" "<<r<<endl;
        printf("%d\n",sum[r]-sum[l-1]);
    }
    return 0;
}

回复

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

正在加载回复...