無聊的數對

2021-10-07 04:04:16 字數 1308 閱讀 1604

點此看題

本題的關鍵是理解:x xor y 的二進位制表示下有奇數個1

如果xx

x有奇數個1

11,y

yy有奇數個1

11,那麼x⊕y

x\oplus y

x⊕y一定有偶數個1

11,可以發現只有乙個為奇數個1

11,乙個為偶數個1

11的情況異或起來才是奇數個1

11,問題轉化成了在這些區間的並集中有多少個數奇數個1

11,有多少個數偶數個111

顯然就可以用動態開點線段樹了,如果乙個點被完全覆蓋,如果他是葉子,判斷加到哪一維,否則0

00的個數和1

11的個數都是len

/2

len/2

len/

2,當然需要從0

00開始存(最底層0,1

0,10,

1一對,2,3

2,32,

3一對...

.....

.)

#include

#define int long long

const

int m =

5000005

;const

int lim =

(1ll

<<32)

-1;int

read()

int n,rt,cnt,f[m]

,ls[m]

,rs[m]

,v[m][2

];void

ful(

int&x,

int l,

int r)

v[x][0

]=v[x][1

]=(r-l+1)

/2;}

void

down

(int x,

int l,

int r)

voidup(

int x)

void

upd(

int&x,

int l,

int r,

int l,

int r)

down

(x,l,r)

;int mid=

(l+r)

>>1;

upd(ls[x]

,l,mid,l,r)

;upd

(rs[x]

,mid+

1,r,l,r);up

(x);

}signed

main()

}

LOJ 5516 無聊的數對

好水的題呀,為什麼還是這句話?額,首先,我們知道要使得 這,還是證一下吧。我們設於是答案就成了所有區間內偶數個1的個數乘上奇數個1的個數的積。然後,我們發現資料規模為 時間複雜度是 include include include include include include include inc...

無聊的生活,無聊的世界

最近是越來越無聊勒呢,我發現最近的我好像有點神經.神經兮兮的,我承認我以前就愛說,愛瘋,愛鬧,但是八,最近好像比以前還嚴重勒呢.阿,阿,算一算好像好長時間沒出家門勒呢 蛤蛤,自從退學好像越來越頹廢勒,不點阿不點,你完了,你真的完了,誒阿,一天就在家呆著,吃喝拉撒睡玩.這小生活過的,蠻享受的,但是就是...

無聊的python課程 Python無聊的總結

在公司無聊的時候看了前輩寫的python 突然發現乙個比較好玩的python表示式 1 lambda x,y x y 咋一看,這個應該類似方法之類的,上網查了查,所以特此總結下 lambda 上 冒號前邊的代表引數 冒號後邊的代表表示式 返回值型別跟引數有關 1 lambdax x2 at 0x01...