結果

問題 No.1493 隣接xor
コンテスト
ユーザー ああ
提出日時 2026-05-17 22:47:34
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 209 ms / 2,000 ms
コード長 555 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 139 ms
コンパイル使用メモリ 84,992 KB
実行使用メモリ 164,864 KB
最終ジャッジ日時 2026-05-17 22:47:40
合計ジャッジ時間 5,373 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
純コード判定待ち
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

def aa(m):
    global mod
    while m>1:
        m//=2
        seg[m]=(seg[m*2]+seg[m*2+1])%mod
def bb(l,r):
    global mod
    res=0
    while l<r:
        if l&1:
            res+=seg[l];l+=1
        if r&1:
            r-=1;res+=seg[r]
        l//=2;r//=2
    res%=mod
    return res

n=int(input())
a=list(map(int,input().split()))
x=[0];mod=10**9+7
for i in a:
    x.append(x[-1]^i)
v=1<<len(x).bit_length()
seg=[0]*v*2
y={};seg[v]=1;aa(v)
for i in x:
    y[i]=0
for i in range(1,n):
    seg[i+v]=bb(y[x[i]]+v,i+v);aa(i+v)
    y[x[i]]=i
print(seg[1])
0