給乙個無向圖$g(v,e)$滿足$|v|<=21$,對於某一種將$g(v,e)$劃分為k個的有序集合方案,若每乙個子集$g_i(v_i,e_i)$,$e_i=\$都不存在尤拉迴路,則會對答案貢獻為
其中,$x$為集合元素,$w_x$為元素$x$的權值。
題解:
被題意坑成cu……我還是太菜了……
其實很顯然我們會得到乙個$dp$,設$f_s$為集合$s$劃分後的乘積和。
顯然我們有轉移方程:
$w_s$表示$[g(s,e_s)不存在尤拉迴路](\sum_w_x)^p$
乙個裸的子集卷積的式子。
時間複雜度$n^2 2^n$
#include "bits/stdc++.h"using namespace std;
inline int read ()
const int mod = 998244353,n=1<<21;
inline int powmod (int a,int b) return ret;
}inline void add (int &x,int y)
inline void erase (int &x,int y)
inline void fwt (int *a,int n,int f)
for (i=0;i
f[0][i]=1;
for (i=1;i<=n;++i)
fwt(g[i],s,0),
memcpy(f[i],g[i],sizeof f[i]);
for (i=1;i<=n;++i)
fwt(f[i],s,1);
for (j=0;j
if (i^n) fwt(f[i],s,0);
}printf("%d\n",f[n][s-1]);
}
WC2018 州區劃分
點此看題 設d p s dp s dp s 為選出來的點狀壓為s ss,所得到的滿意度總和,轉移 d p s 1 f s i s dp i g s i dp s frac sum dp i times g s i dp s f s 1 i s d p i g s i 其中f s f s f s 是w...
WC2018 州區劃分
題目 就當那個判斷乙個州不合法的條件是存在尤拉迴路吧 一張無向圖存在尤拉迴路的條件是 圖連通不存在度數為奇數的點 於是我們列舉每乙個子集,可以在 o 2 nn 2 的時間內判斷乙個集合是否能獨立成為乙個州 之後我們設 dp i 表示選取狀態為 i 的時候的答案,s i 為這個狀態對應的城市的人口之和...
WC2018 州區劃分
題面給一張帶點權的無向圖 要求對其劃分為聯通且不存在尤拉迴路的多個子圖 定義乙個子圖的貢獻是 第 i 個子圖的點權和佔前 i 個子圖的點權和的比例的 p 次冪 定義乙個劃分的貢獻是 該劃分下所有子圖的貢獻的乘積 求所有劃分的貢獻之和 設 f s 為選取點集為 s 時所有劃分的貢獻和 有 f s fr...