對於異或的題目,很多都跟字首和放在一起,比如說這題,讓你求不相交區間異或值相等的個數
很容易想到用字首和表示區間,現在考慮如何做到不相交並且不重複計算
1.二維迴圈,第一維從1開始,第二維乙個用來統計,乙個用來更新
統計的時候,從i開始到n,把這段裡面的所有區間的異或值,都看看前面有沒有相等的,之後計算
更新的時候從1-i,把前面的所有的區間值都加進去
這樣就做到不重不漏
#include#includeview code#include
#include
#include
using
namespace
std;
typedef
long
long
ll;const
int n=5e5+10
;int
s[n];
inta[n];
intcnt[n];
intmain()
ll res=0
;
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
}cout
}
NC14247 Xorto 字首異或
題目鏈結 思路 兩個連續區間的異或和為0,看到區間嘛,就很容易想到字首和處理,這個題目也差不多,字首異或嘛,看著 n 為 1000,就直接暴力找這兩個區間唄。列舉分割點,分割點之前的所有字首異或和相同的都累加起來,然後列舉分割點之後的疑惑和,如果有相等的 疑惑和為0其實就是相等的意思吧 那麼就加上之...
牛客 每日一題 Xorto 題解(異或 字首和)
選取任意不重疊的兩個區間,使異或結果為0 前言已經想到了用字首和優化就是不知道該怎麼判斷他們不是重疊 正文暴力是列舉兩個區間左右端點,但是顯而易見會tle,我們可以考慮只列舉其中乙個區間 x,y 這個區間的異或和可以很容易的在o 1 時間複雜度通過字首異或和求得。如果我們規定 x,y 是右邊的那個區...
子段異或(異或字首和)
傳送門 第一行乙個整數 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 ...