提出 #18769701


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;

const int mn=3e5+69;
int bit[mn];

void update(int i, int d)
{
    while (i<mn)
    {
        bit[i]^=d;
        i+=(i&-i);
    }
}

int pre(int i)
{
    int x=0;
    while (i)
    {
        x^=bit[i];
        i-=(i&-i);
    }
    return x;
}

int query(int l, int r)
{
    return pre(r)^pre(l-1);
}

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n,q,t,x,y;
    cin>>n>>q;
    for (int i=1;i<=n;++i)
    {
        cin>>x;
        update(i,x);
    }
    while (q--)
    {
        cin>>t>>x>>y;
        if (t==1)
            update(x,y);
        else
            cout<<query(x,y)<<"\n";
    }
    return 0;
}

提出情報

提出日時
問題 F - Range Xor Query
ユーザ ScarletS
言語 C++ (GCC 9.2.1)
得点 600
コード長 724 Byte
結果 AC
実行時間 124 ms
メモリ 4796 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 2
AC × 20
セット名 テストケース
Sample sample_01.txt, sample_02.txt
All handmade_00.txt, handmade_01.txt, max_00.txt, max_01.txt, max_02.txt, max_03.txt, max_04.txt, max_05.txt, max_06.txt, max_07.txt, power_of_2_00.txt, power_of_2_01.txt, power_of_2_02.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, sample_01.txt, sample_02.txt
ケース名 結果 実行時間 メモリ
handmade_00.txt AC 3 ms 3576 KiB
handmade_01.txt AC 4 ms 3576 KiB
max_00.txt AC 113 ms 4660 KiB
max_01.txt AC 115 ms 4772 KiB
max_02.txt AC 109 ms 4768 KiB
max_03.txt AC 114 ms 4796 KiB
max_04.txt AC 124 ms 4752 KiB
max_05.txt AC 118 ms 4704 KiB
max_06.txt AC 100 ms 4716 KiB
max_07.txt AC 113 ms 4776 KiB
power_of_2_00.txt AC 99 ms 4572 KiB
power_of_2_01.txt AC 98 ms 4692 KiB
power_of_2_02.txt AC 96 ms 4700 KiB
random_00.txt AC 87 ms 3940 KiB
random_01.txt AC 78 ms 4416 KiB
random_02.txt AC 28 ms 3580 KiB
random_03.txt AC 89 ms 4308 KiB
random_04.txt AC 16 ms 3632 KiB
sample_01.txt AC 2 ms 3680 KiB
sample_02.txt AC 2 ms 3560 KiB