LOJ2542 PKUWC2018 隨機遊走

2022-04-29 21:36:17 字數 968 閱讀 8367

分析:\(\sum\limits_(-1)^min=\sum\limits_^na_i\sum\limits_^(-1)^j\binom\)

\(\sum\limits_(-1)^min=\sum\limits_^na_i[n-i=0]\)

\(\sum\limits_(-1)^min=a_n=max\)

設\(f_\)表示\(f\)第一次走到\(s\)狀態的期望步數。

這個東西我們直接列舉\(s\)然後樹上高斯消元即可。

最後再\(fwt\)一下就能得到反演後的\(min_s\)了。

**:

#include #include #include #include #include using namespace std;

#define mod 998244353

typedef long long ll;

#define n 20

#define m ((1<<18)+50)

int n,head[n],to[n<<1],nxt[n<<1],du[n],rt,m;

int s,cnt[m],cnt;

inline void add(int u,int v)

ll k[n],b[n],inv[n],f[m];

ll qp(ll x,ll y)

void dfs(int x,int y)

k[x]=inv[du[x]]; b[x]=1; ll lhs=1;

for(i=head[x];i;i=nxt[i]) if(to[i]!=y)

lhs=qp(lhs,mod-2);

k[x]=k[x]*lhs%mod; b[x]=b[x]*lhs%mod;

}void fwt(ll *a,int len)

fwt(f,(1

printf("%lld\n",(f[s]+mod)%mod);

}}

LOJ 2542 隨機遊走

解 首先minmax容斥變成經過集合t的第乙個點就停止的期望步數。對於某個t,設從x開始的期望步數為f x 如果x t,f x 0。否則f x f y in x 1 樹上高斯消元。從葉子往上,可以發現每個點都可以表示為af fa b 於是我們推一波式子,參考,就可以對每個t,o n 求出f root...

PKUWC2018 隨機遊走

loj 2542.pkuwc 2018 隨機遊走 最值反演 樹上期望dp 其實不是很難啦 min max容斥既視感 設f x 表示從x走到s中第乙個點的期望步數 f x 1 d x f fa x 1 d x f ch x 1 這個有環 利用f x a f fa x b的套路代換 得到a,b的遞推式 ...

PKUWC2018 隨機演算法

題意 給定乙個圖 n 20 定義乙個求最大獨立集的隨機化演算法 產生乙個排列,依次加入,能加入就加入 求得到最大獨立集的概率 本質就是計數題 每個點有三種狀態 考慮過且在獨立集中,考慮過未在獨立集中,未考慮 本來在集合裡的點不能知道有哪些,而且不能加入的點的排列也不好確定。乙個好的方法是 把考慮過的...