tyvj1864 守衛者的挑戰 概率dp

2021-08-14 07:10:49 字數 542 閱讀 7944

解題思路:

注意到輸贏與挑戰順序無關,所以我們可以先把能加的揹包加了,看是否夠裝得到的碎片即可。

所以設f[i][j][k]表示挑戰了i關,贏了j場,揹包剩餘容積為k的概率,注意到k最多為n就夠了,而照著先揹包後碎片的順序,只要k<0該狀態即停止轉移。

分輸贏轉移即可。

#include

#define ll long long

using

namespace

std;

int getint()

const

int n=205;

int n,l,k;

struct node

}a[n];

double ans,f[n][n][n];

int main()

for(int i=l;i<=n;i++)

for(int j=0;j<=n;j++)

ans+=f[n][i][j];

printf("%0.6f",ans);

}

TYVJ P1864 守衛者的挑戰 題解

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

守衛者的挑戰

題目描述 隊員們被傳送到了乙個擂台上,最初身邊有乙個容量為k的包包。擂台賽一共有項挑戰,各項挑戰依次進行。第項挑戰有乙個屬性ai,如果ai 0,表示這次挑戰成功後可以再獲得乙個容量為ai的包包 如果ai 1,則表示這次挑戰成功後可以得到乙個大小為1的地圖殘片。地圖殘片必須裝在包包裡才能帶出擂台,包包...

守衛者的挑戰

初始值為 k 現經過一段數,有 p i 的概率加上第 i 個數 a i 問最後值 geq0 且加了 l 個數的概率。注意到 k 200 都是沒有意義的,於是可以把 k 的範圍視為 0 leq k leq200 直接設 f i j k 表示處理了第 1 i 個數,加了 j 個數,值為 k 的概率。決策...