輸入乙個數列a,你需要輸出其中異或值為0的不同子段的數量。乙個子段 [l,r] (1 \le l \le r \le n1≤l≤r≤n)的異或值為a_l \oplus a_ \oplus a_ \oplus \ldots\oplus a_ral⊕al+1⊕al+2⊕…⊕ar,其中\oplus⊕符號代表異或運算。
兩個子段被視為相同的,當且僅當其開始和結束位置均對應相同。
第一行乙個整數 n ,代表數列長度。
第二行 n 個整數,代表數列。
輸出乙個整數,代表答案。
示例1
複製
複製5
1 2 3 2 1
2
子段 [1,3] 和子段 [3,5] 是合法子段。
n \le 200000, 0 \le a_i \le 2^-1n≤200000,0≤ai≤230−1
**:
#includeusing namespace std;
long long n,k,ans,s;
long long a[1000001],b[1000001];
mapm;
int main()
else
}cout<}
子段異或(異或字首和)
傳送門 第一行乙個整數 n 代表數列長度。第二行 n 個整數,代表數列。輸出乙個整數,代表答案。示例1 複製5 1 2 3 2 1 複製 2 子段 1,3 和子段 3,5 是合法子段。首先你得知道乙個知識點就是 如果sum i 為陣列a的前i項的異或和,就是說sum i a 1 a 2 a 3 a ...
牛客寒假訓練營4 D 子段異或
題目描述 輸入乙個數列a,你需要輸出其中異或值為0的不同子段的數量。乙個子段 l,r 1 l r n1 le l le r le n1 l r n 的異或值為al al 1 al 2 ara l oplus a oplus a oplus ldots oplus a ral al 1 al 2 ar...
異或 異或相關
感謝 morning glory 贊助 異或異 或 de scri ptio ndes crip tion 給定 l,r l,r,求 i lr j lr i ji l r j l r i jl,r 1 09l,r 1 09 s olut ions olut ion 假設l 1,r 4l 1,r 4,...