bzoj3029 守衛者的挑戰

2021-09-10 17:08:01 字數 2163 閱讀 9675

題目:

題目描述

監獄的所在地。突然,眼前一道亮光閃過。「我, nizem,是黑魔法聖殿的守衛者。如果你

能通過我的挑戰,那麼你可以帶走黑魔法聖殿的地圖„„」瞬間,隊員們被傳送到了乙個擂

台上,最初身邊有乙個容量為 k 的包包。

擂台賽一共有 n 項挑戰,各項挑戰依次進行。第i 項挑戰有乙個屬性 ai ,如果ai   ,

表示這次挑戰成功後可以再獲得乙個容量為 ai 的包包;如果 ai  ,則表示這次挑戰成功

後可以得到乙個大小為 1 的地圖殘片。地圖殘片必須裝在包包裡才能帶出擂台,包包沒有

必要全部裝滿,但是隊員們必須把獲得的所有的地圖殘片都帶走(沒有得到的不用考慮,只

需要完成所有 n 項挑戰後揹包容量足夠容納地圖殘片即可),才能拼出完整的地圖。並且他

們至少要挑戰成功 l 次才能離開擂台。

隊員們一籌莫展之時,善良的守衛者 nizem 幫忙預估出了每項挑戰成功的概率,其中

第 i 項挑戰成功的概率為

pi 。現在,請你幫忙**一下,隊員們能夠帶上他們獲得的地圖

殘片離開擂台的概率。

輸入格式

第一行三個整數 n , l , k 。

第二行 n 個實數,第i 個實數 pi 表示第i 項挑戰成功的百分比。

第三行 n 個整數,第i 個整數 ai 表示第i 項挑戰的屬性值.

輸出格式

乙個整數,表示所求概率,四捨五入保留 6 位小數。

樣例輸入 131

0102030-1

-12樣例輸出 1

0.300000樣例輸入 251

2364413

8363-1

2-12

1樣例輸出 2

0.980387

樣例說明

在第乙個樣例中, 若第三項挑戰成功,如果前兩場中某場勝利,隊員們就有空間來容納

得到的地圖殘片,如果挑戰失敗,根本就沒有獲得地圖殘片,不用考慮是否能裝下;若第三

項挑戰失敗,如果前兩場有勝利,沒有包來裝地圖殘片,如果前兩場都失敗,不滿足至少挑

戰成功 l 次(l 1)的要求。因此所求概率就是第三場挑戰獲勝的概率。

資料範圍與約定

對於 100

% 的資料,保證  k  ,   n  ,  ai  ,   l  n ,

  

pi 。

思路:

dp。令f[i][j][k]表示前i個挑戰,成功了j項,揹包剩餘k容量的概率。

其中,如果k大於n,則令k等於n。

且k可以為負,處理方法是把k加上n。

轉移方程:

f[i+1]

[j+1

][k+w[i+1]

<

2*n?k+w[i+1]

:2*n]+

=f[i]

[j][k]

*p[i+1]

/100.0

;f[i+1]

[j][k]

+=f[i]

[j][k]*(

100-p[i+1]

)/100.0

;

**:

#include

using

namespace std;

#define read(x) scanf("%d",&x)

#define maxn 200

#define maxk 2000

#define db double

int n,m,k;

int p[maxn+5]

,w[maxn+5]

;db f[maxn+5]

[maxn+5]

[2*maxn+5]

;int

main()

else}}

} db ans=0;

for(

int i=m;i<=n;i++

)for

(int j=n;j<=

2*n;j++

) ans+

=f[n]

[i][j]

;printf

("%.6lf"

,ans)

;return0;

}

BZOJ3029 守衛者的挑戰

第一行三個整數n,l,k。第二行n個實數,第i個實數pi表示第i項挑戰成功的百分比。第三行n個整數,第i個整數ai表示第i項挑戰的屬性值.乙個整數,表示所求概率,四捨五入保留6 位小數。樣例輸入1 3 1 0 10 20 30 1 1 2 樣例輸入2 5 1 2 36 44 13 83 63 1 2...

bzoj 3029 守衛者的挑戰 概率dp

有n個位置,每個位置有乙個權值ai,若ai 0則ai必為 1,且有pi的概率獲得這個值。初始值為k。現在問至少獲得了l個值且獲得的值的和不小於0的概率。n 200,l n,ai,k 2000 設f i,j,k 表示到第i個位置,拿了j個值,當前和為k的概率。顯然若當前的值大於n的話就一定可以滿足和不...

BZOJ3029 守衛者的挑戰 期望DP

time limit 2 sec memory limit 128 mb submit status discuss 的地圖殘片。地圖殘片必須裝在包包裡才能帶出擂台,包包沒有必要全部裝滿,但是隊員們必須把 獲得的所有的 地圖殘片都帶走 沒有得到的不用考慮,只需要完成所有n項挑戰後揹包容量足夠容納地圖...