51nod 演算法馬拉松19 C 集合對

2021-07-24 05:41:42 字數 594 閱讀 4501

定義集合xor操作 a xor b=a∪b-a∩b。

問有多少對(p,q)滿足 p∈a q∈b 使得 (p xor a)xor(q xor b)=a xor b其中p q都是集合。

答案對1e9+7取模。

例如:a = ,b=,a xor b = ,列舉所有情況p q有2種。

輸出答案對10^9+7取模的值

三個整數a b c。(a,b,c<=10^18)

表示|a|,|b|,|a∩b|。

a,b,c<=10^18

讓我們化簡一下目標式,因為p∈a q∈b,所以易化簡為 (a

−p)x

or(b

−q)=

a∪b−

a∩b

該式等價於 p∪

q−p∩

q=a∪

b−a∩

b 那就很簡單了。顯然應滿足p∪

q=a∪

b ,所以只需考慮p∩

q=a∩

b=c 的方案數。

p 若選取了x個

c 中的元素,那麼

q也必須選這些元素。共

c 個元素,每個可以選或不選,所以答案為2c

51nod演算法馬拉松32

比賽鏈結 馬拉松是真的難 應該是我太菜了tnt 同bzoj1534 題解戳這裡 n個有標號的點,其中m個是葉子節點。問有多少數的形態。include include include include include using namespace std typedef long long ll co...

51nod演算法馬拉松15

智力徹底沒有了。看來再也拿不到獎金了qaq。a b君的遊戲 因為資料是9b1l,所以我們可以hash試一下資料。include include include include define rep i,s,t for int i s i t i define dwn i,s,t for int i ...

51nod演算法馬拉松13

a 取餘最長路 不難發現路徑可以拆成三條線段,只要知道兩個轉折點的位置就能計算出答案。設sum i,l,r 表示第i行從l到r元素的和,則答案可以表示為sum 1,1,x sum 2,x,y sum 3,y,n p。字首和一下轉化成 s3 n s3 y 1 s2 y s1 x s2 x 1 p,從小...