1997 守衛者的挑戰

2022-05-03 18:00:14 字數 2106 閱讀 1963

1997守衛者的挑戰

時間限制: 1 s

空間限制: 128000 kb

題目等級 : 鑽石 diamond

題解題目描述description

輸入描述input description

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

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

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

輸出描述output description

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

樣例輸入sample input

【樣例輸入1】

3 1 0

10 20 30

-1 -1 2

【樣例輸入2】

5 1 2

36 44 13 83 63

-1 2 -1 2 1

樣例輸出sample output

【樣例輸出1】

0.300000

【樣例輸出2】

0.980387

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

typedef long long ll;

const int maxn = 211;

int n,l,k;

long double p[maxn],ans;

int a[maxn];

long double f[maxn][maxn][maxn*2];//滾動陣列

//long double f[maxn][maxn][maxn*2];//f[i][j][k]表示前i場挑戰,贏了j場並且容量為k的概率

//容量大於n的部分沒有任何作用

//容量為2×n表示實際的n的空間,容量為n表示實際的0,容量為0表示實際的還需要-n的空間

inline int getint()

int w=0,q=0; char c=getchar();

while((c<'0' || c>'9') && c!='-') c=getchar(); if(c=='-') q=1,c=getchar();

while (c>='0' && c<='9') w=w*10+c-'0', c=getchar(); return q ? -w : w;

inline void work(){

n=getint(); l=getint(); k=getint();

for(int i=1;i<=n;i++) scanf("%lf",&p[i]),p[i]/=100.0; for(int i=1;i<=n;i++) a[i]=getint();

f[0][0][n+min(n,k)]=1.0; int tag=1;

for(int i=1;i<=n;i++) {

memset(f[tag],0,sizeof(f[tag])); tag^=1;

for(int j=0;jfor(int k=n*2;k>=0;k--) {

f[tag^1][j+1][min(k+a[i],n*2)]+=f[tag][j][k]*p[i];

f[tag^1][j][k]+=f[tag][j][k]*(1-p[i]);

tag^=1;   for(int i=l;i<=n;i++) for(int j=n;j<=n*2;j++) ans+=f[tag][i][j];

printf("%.6lf",ans);

int main()

work();

return 0;

1997 守衛者的挑戰

時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解輸入描述 input description 第一行三個整數n,l,k。第二行n個實數,第i個實數pi表示第i項挑戰成功的百分比。第三行n個整數,第i個整數ai表示第i項挑戰的屬性值。輸出描述 output desc...

Codevs P1997 守衛者的挑戰

第一行三個整數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 ...

codevs 1997 守衛者的挑戰

表示很遺憾.開始狀態想的沒錯 就是轉移的時候出了問題 自己也想到了陣列平移 然而沒往下寫 與正解擦肩而過 然後為了好轉移寫了個4維的 時間不多了沒來得及降維 草草的算算空間就交了 尼瑪double忘記 8了 華麗的直接memory limit exceeded while compiling 我尼瑪...