最终结果 + 1 代码提交能过 但是线下看着不对
查看原帖
最终结果 + 1 代码提交能过 但是线下看着不对
377336
pyduck楼主2024/5/28 17:26

这个代码 在线下跑是过不了样例的 但是 提交以后就能通过 如果把最后结果 的+1去掉 线下跑看着没问题 但是 线上提交就都wa了 而且提示的 都是跟答案少1 很奇怪 跪求解答

#define MAXN 2000005
#define reg register
#define inl inline
#define db double
#define eps 1e-6
#define LL long long
#include <bits/stdc++.h>
using namespace std;
const int Mod = 998244353;
const db Pi = acos(-1.0);

long arr[500005];
int n, m;

int lowbit(int x){
    return x & -x;
}

void ask(int x, long k){
    for(int i = x; i <= n; i += lowbit(i)){
        arr[i] += k;
    }
}

long sums(int x){
    long res = 0;
    for(int i = x; i > 0; i -= lowbit(i)){
        res += arr[i];
    }
    return res;
}

int main()
{
    //freopen("P3368_1.in", "r", stdin);

    cin >> n >> m;
    long k, ks;
    for(int i = 1; i <= n; i++){
        scanf("%d", &k);
        ask(i, k - ks);
        ks = k;
    }
    int o, x, y;
    for(int i = 0; i < m; i++){
        cin >> o;
        if(o == 1){
            cin >> x >> y >> k;
            ask(x, k);
            ask(y + 1, -k);
        }else{
            cin >> x;
            long res = sums(x) + 1;
            cout << res << endl;
        }
    }

    return 0;
}

2024/5/28 17:26
加载中...