UOJ449 集訓隊作業2018 喂鴿子

2021-09-23 22:33:37 字數 2456 閱讀 4763

uoj

看題後:

感覺自己越來越菜了,再這樣下去,要是正式考試送溫暖豈不是連溫暖都拿不到了。。

一臉min-max反演的樣子,由於每個鴿子都等價,列舉子集大小 i

ii 即可

a ns

=∑i=

1n(n

i)(−

1)i+

1nif

(i

)ans=\sum_^n\binom n i(-1)^\frac n i f(i)

ans=i=

1∑n​

(in​

)(−1

)i+1

in​f

(i)其中 n

i\frac n i

in​ **於平均每 n

i\frac n i

in​ 步才會有一粒餵給選中的鴿子。f(i

)f(i)

f(i)

表示的是給 i

ii 只鴿子餵食,有乙個鴿子大於等於 k

kk 時停止的期望步數。

列舉餵給其他鴿子的玉公尺粒數量,概率通過方案數來算

f (i

)=∑j

=0(i

−1)(

k−1)

(j+k

)i(j

+k−1

j)g[

i−1]

[j](

1i)j

+k

f(i)=\sum_^ (j+k)i\binom jg[i-1][j] (\frac 1 i)^

f(i)=j

=0∑(

i−1)

(k−1

)​(j

+k)i

(jj+

k−1​

)g[i

−1][

j](i

1​)j

+k其中 g[i

−1][

j]

g[i-1][j]

g[i−1]

[j] 表示給 i−1

i-1i−

1 只鴿子喂 j

jj 粒,且每只都小於 k

kk 的方案數。這個可以用生成函式算

g [i

−1][

j]=(

∑r=0

k−1x

ii!)

i−1[

j]

g[i-1][j]=(\sum_^ \frac )^[j]

g[i−1]

[j]=

(r=0

∑k−1

​i!x

i​)i

−1[j

]時間複雜度 o(n

2k

log⁡(n

k)

)o(n^2k\log (nk))

o(n2

klog(n

k))

#include

#include

using

namespace std;

typedef

long

long ll;

const

int maxn=

70010

,mod=

998244353

,g=3

;template

<

typename tp>

inline

intgetmin

(tp &x,tp y)

template

<

typename tp>

inline

intgetmax

(tp &x,tp y)

template

<

typename tp>

inline

void

read

(tp &x)

int n,k,n,l,ans,fac[maxn]

,inv[maxn]

,f[55

],g[55]

[maxn]

,rev[maxn]

;int

pls(

int x,

int y)

intdec

(int x,

int y)

intc

(int n,

int m)

intpower

(int x,

int y)

void

ntt(

int*a,

int f)}}

if(f==-1

)}void

init

(int n)

intmain()

for(

int i=

1;i<=n;i++

)printf

("%d\n"

,ans)

;return0;

}

UOJ 449 集訓隊作業2018 喂鴿子

449.集訓隊作業2018 喂鴿子 dp好題 處理前m個,最快吃飽的鴿子期望的時間 根據期望的定義 考慮每個方案數的概率 期望次數 列舉前m個用了x個,概率都是 1 m x em x 而em x 表示往前m個扔了x個期望的總共次數,就是x n m 考慮用了x個的方案數 生成函式egf思想。而出現乙個...

UOJ424 集訓隊作業2018 count

先特判掉 m n 的情況。考慮先確定乙個 f 陣列,然後判定他能否生成乙個好序列。考慮先確定最靠左邊的最大值的位置,此時他大於等於後面的元素,然後嚴格大於前面的元素。不難發現這種確定方式可以固定一組 f 序列,同時,如果這張圖上的最長鏈小於等於 m 那麼這個答案就是合法的。觀察到我們其實只關心長度,...

UOJ424 集訓隊作業2018 count

將序列對應到笛卡爾樹,發現每棵笛卡爾樹只對應一種合法序列。因為在笛卡爾樹上往左走其對應的數至少減 1 往右走不一定減 1 所以這棵笛卡爾樹從根節點往左走的次數要 leqslant m 題目就轉化為了統計有多少棵 n 個節點的合法笛卡爾樹。笛卡爾樹是二叉樹,因為二叉樹和括號序列都可以用卡特蘭數計數,所...