关于标签和数据
查看原帖
关于标签和数据
1074084
asd890123楼主2024/5/5 12:28

暴力82分,对于最后的final操作开个前缀和就可以AC(甚至不用开O2和读入优化),4个标签就用个前缀和,差分、线断树、树状数组根本没用到,纯前缀和+暴力代码:

#include <iostream>

typedef long long ll;

const int maxn = 8e4 + 5;

int main(){
    
    std::ios::sync_with_stdio(0);
    std::cin.tie(0),std::cout.tie(0);
    
    char op;
    ll a[maxn] = {0},s[maxn];
    ll final,n,opt,mod,min,max,l,r,x,ans = 0;
    
    s[0] = 0;
    std::cin >> n >> opt >> mod >> min >> max;
    while (opt--){
        
        std::cin >> op >> l >> r;
        if (op == 'A'){
            
            std::cin >> x;
            for (ll i = l;i <= r;i++) a[i] += x;
            
        }
        else{
            
            ans = 0;
            for (ll i = l;i <= r;i++)
                if (min <= a[i] * i % mod && a[i] * i % mod <= max)
                    ans++;
            std::cout << ans << '\n';
            
        }
        
    }
    std::cin >> final;
    for (int i = 1;i <= n;i++) s[i] = s[i - 1] + (min <= a[i] * i % mod && a[i] * i % mod <= max);
    while (final--)
        std::cin >> l >> r,std::cout << s[r] - s[l - 1] << '\n';
    
    return 0;
}
2024/5/5 12:28
加载中...