牛客練習賽69D 火柴排隊 dp

2021-10-09 09:42:05 字數 1241 閱讀 6418

n

nn個數的序列,排序後讓隨機k

kk個數加上d

dd,求依舊滿足單調上公升的期望概率

對於乙個位置加上d

dd後會讓到後面一段範圍內都得加上d

dd。我們預處理乙個l

il_i

li​表示如果i

ii加上d

dd後[i+

1,li

][i+1,l_i]

[i+1,l

i​]都得加上ddd。

然後設fi,

jf_

fi,j

​表示到第i

ii個加了k

kk次依舊滿足條件的方案數。

然後o (n

2)dp

o(n^2)dp

o(n2)d

p即可

#include

#include

#include

#define ll long long

using

namespace std;

const

int n=

5100

,xjq=

998244353

;int n,d,l[n]

,a[n]

,f[n]

[n],c[n]

[n];

intpower

(int x,

int b)

return ans;

}int

main()

f[1][

0]=c[0][

0]=1

;for

(int i=

1;i<=n;i++)}

for(

int i=

1;i<=n+

1;i++

)for

(int j=

1;j<=n+

1;j++

) c[i]

[j]=

(c[i-1]

[j]+c[i-1]

[j-1])

%xjq;

for(

int i=

1;i<=n;i++

)printf

("%d\n"

,(ll)f[n+1]

[i]*

power

(c[n+1]

[i+1

],xjq-2)

%xjq)

;}

牛客練習賽69 D 火柴排隊

長度為 n nn 序列 a aa 中找出 k kk 個數加 d dd,使新序列中如果 ai aj a i a j ai aj 那麼原序列也 a i aj a i a j ai aj 的概率。對於每個 1 k n 1 le k le n 1 k n,你都要輸出其對應的答案,答案模 998244353 ...

牛客練習賽 69

第一次打牛客直接。y1s1牛客的評測系統真的慢,搞得我不想交 題目鏈結 首先先對陣列a逆序貪心可得val i,j a1 a2 ai j val i,j a 1 a 2 dots a val i,j a 1 a 2 ai j 嘗試證明 分析可知我們最終會選擇i j i ji j個陣列a的數,貪心肯定每...

牛客練習賽69 B

題意 給定n nn個數,乙個x xx表示可以劃分成最多x xx個串,乙個y yy表示在乙個串中最多選擇y yy個數。最後求 i 1x j 1yv al i j sum x sum yval i,j i 1x j 1 y va l i,j v al i,j val i,j val i,j 為 將n n...