Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

哪位神仙帮忙看一下为什么wa了

Posted by yueboyang171 at 2019-03-06 12:39:48 on Problem 3468
#include <iostream>
#include <cstdio>
#define ll long long
#define MAXN 100010
using namespace std;
ll  q[MAXN], q2[MAXN], sum[MAXN];
ll N, C;
ll lowbit( ll x)
{
    return x&(-x);
}

void add(ll *c, ll a, ll x)
{
    while( a <= N )
    {
        c[a] += x;
        a += lowbit(a);
    }
}

ll query(ll *c , ll a)
{
    ll ans = 0;
    while( a > 0)
    {
        ans += c[a];
        a-=lowbit(a);
    }
    return ans;
}
int main()
{
    scanf("%lld %lld",&N,&C);
    ll temp1 = 0, temp2;
    for(int i=1; i<=N; i++)
    {
        scanf("%lld", &temp2);
        add(q, i, temp2-temp1);
        add(q2,i, (temp2-temp1) * i);
        temp1 = temp2;
    }
    char cc;
    ll l, r,  x;

    for(int i=0; i<C; i++)
    {
        cin >> cc;
        if( cc == 'Q')
        {
            scanf("%lld %lld", &l, &r);
            ll a, b;
            a = l * query(q, l-1) - query(q2, l-1);
            b = (r+1) * query(q, r) - query( q2, r);
            printf("%lld\n",b-a);
        }else
        {
            scanf("%lld %lld %lld", &l, &r, &x);
            add( q, l, x);
            add( q, r+1, -x);
            add( q2, l, l*x);
            add( q, r+1, (r+1)*(-x));
        }
    }
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator