Wannafly挑戰賽A 概率DP

2021-08-10 19:35:06 字數 508 閱讀 8593

給你乙個長 n 的序列,m 次查詢

每次查詢給乙個 x,然後:

從序列的最左端 1 開始,每次隨機的選擇乙個右端點 r,如果兩個端點間的區間和不超過 x ,就進行一次分割,然後把左端點變成 r + 1, 否則一直隨機下去。

問這樣分割出來的期望段數

第一行兩個數 n,m

之後一行 n 個數表示這個序列

之後m行每行乙個數 x,表示求每段的和不大於 x 的情況下切割的期望段數

m 行,每行乙個保留到小數點後2位的數表示答案

如果無論如何都沒有合法的切割方案,輸出"ynoi is good oi!",不含引號

題解:很少的概率dp,從後往前,需要用 f[i]表示[i..n]這段子序列可以切成的期望段數,對於每個i,我們可以找到乙個最大的j,使得[i..j]這段和小於x,那麼

f[i] = sigma(i+1,j+1)f[k] / len + 1;維護乙個字尾sf[i] = sigma[i..n]f[k];和乙個單調指標

Wannafly挑戰賽6 D 鎖

時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 題目描述 106號房間共有n名居民,他們每人有乙個重要度。房間的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複...

Wannafly挑戰賽16 D 打怪(DP)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 有a種 b種屬性,和c種怪物。對於第k種怪物,給出 i和屬性j的搭配在乙個單位時間內對其造成的傷害h k,i,j。已知一開始使用 i,需要時間x i,使用屬性i,需...

Wannafly挑戰賽20 D挑選隊友

d 挑選隊友 進入討論 77 304 通過輸入包括兩行 第一行包括三個數n,m,k,表示共有n位選手,m個群,需要有k名選手被選擇 第二行包括m個數,第i個數表示第i個群有si個選手 n 100000,m k n 輸出包括一行 第一行輸出方案數 由於輸出可能比較大,你只需要輸出在模998244353...