uoj 310 UNR 2 黎明前的巧克力

2022-09-01 04:27:10 字數 688 閱讀 3208

題目描述

題解

考慮到選出的兩個集合的異或值為 $0$ ,所以我們可以看做找出集合,其異或值為 $0$ ,然後如果這個集合大小是 $x$ ,對答案的貢獻就是 $2^x$

所以我們考慮每個 $i$ 對應乙個多項式 $(1+2x^)$ ,只要我們把多項式乘起來即可

我們考慮 $fwt$ 過程中 $i$ 位置上的數對 $j$ 位置的貢獻是數值乘上 $(-1)^$ ,不難發現每個多項式 $fwt$ 後數值要麼是 $-1$ ,要麼是 $3$

所以我們可以把這些多項式相加後做 $fwt$ ,然後設這個位置有 $x$ 個 $-1$,那就有 $n-x$ 個 $3$ ,解方程即可,然後這一位將變成 $(-1)^x3^$,之後再做 $ifwt$ 即可

最後答案因為不能選出空集所以要減一

**

#include using

namespace

std;

const

int n=1

<<20,p=998244353

;const

int u=(p+1)>>1,v=748683265

;int

n,a[n],w[n];

void fwt(int *a,into)}

intmain()

UOJ 310 黎明前的巧克力 FWT

題目傳送門 題目大意 給你乙個序列,定義乙個子串行的權值表示子串行中元素的異或和,現在讓你選出兩個互不相交的子串行,求選出的這兩個子串行權值相等的方案數,n,a leq 10 這是一道考察對 fwt 演算法理解的好題。然而我並不會 思路來自出題人的題解 假設權值最大值為 m 暴力怎麼搞?揹包 dp ...

UNR 2 黎明前的巧克力

解題思路 考慮乙個子集 s 的異或和如果為 0 那麼貢獻為 2 不難列出生產函式的式子,這裡的卷積是異或卷積。x 0 prod 2x 1 因為每一項只有兩項 x 0,x 有值,記 f i x 2x 1 f i x textf x 有 f i x sum 1 2 times 1 x s 不難發現 f ...

C UNR 2 黎明前的巧克力

evan 和 lyra 都是聰明可愛的孩子,兩年前,evan 開始為乙個被稱為uoj的神秘的oi組織工作,在 evan 與其他小夥伴的努力下,uoj不僅成了oi界原創比賽的典範,更是因ur這一 難度的存在而舉世聞名。然而今年,隨著 evan 前往世界彼岸,uoj一天天減少著他的活力,而就在oi歷新年...