수학 적 기대 DP 소결
10322 단어 알고리즘
#include
#include
#include
using namespace std;
const int maxn=200+10;
int n,t,l;
double p[maxn];
int a[maxn];
double f[maxn][maxn][maxn+200]; // f[i][j][k] i j - k
int main(){
scanf("%d%d%d",&n,&l,&t);
for(int i=1;i<=n;i++){
scanf("%lf",&p[i]);
p[i]/=100;
}
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
if(t>n)t=n;
f[0][0][t+200]=1; //k 200
for(int i=0;ifor(int j=0;j<=n;j++){
for(int k=-n;k<=n;k++){
if(a[i+1]==-1){
f[i+1][j][k+200]+=f[i][j][k+200]*(1-p[i+1]);
f[i+1][j+1][k-1+200]+=f[i][j][k+200]*p[i+1];
}
else {
f[i+1][j+1][min(k+a[i+1],n)+200]+=f[i][j][k+200]*p[i+1];
f[i+1][j][k+200]+=f[i][j][k+200]*(1-p[i+1]);
}
}
}
}
double ans=0;
for(int j=l;j<=n;j++){
for(int k=0;k<=n;k++){
ans+=f[n][j][k+200];
}
}
printf("%.6lf",ans);
return 0;
}
#include
#include
#include
#include
using namespace std;
double f[20][20][20][20][5][5];
int vis[20][20][20][20][5][5];
int A,B,C,D;
double dp(int a,int b,int c,int d,int x,int y){
if(vis[a][b][c][d][x][y]) return f[a][b][c][d][x][y];
else vis[a][b][c][d][x][y]=1;
int tot[4];
tot[0]=a;tot[1]=b;tot[2]=c;tot[3]=d;
tot[x]++;tot[y]++;
if(tot[0]>=A&&tot[1]>=B&&tot[2]>=C&&tot[3]>=D) return f[a][b][c][d][x][y]=0.000;
double ans=0;
int sum=a+b+c+d;
if(x!=4)sum++;
if(y!=4)sum++;
if(a<13) ans+=dp(a+1,b,c,d,x,y)*(13-a)/(54-sum);
if(b<13) ans+=dp(a,b+1,c,d,x,y)*(13-b)/(54-sum);
if(c<13) ans+=dp(a,b,c+1,d,x,y)*(13-c)/(54-sum);
if(d<13) ans+=dp(a,b,c,d+1,x,y)*(13-d)/(54-sum);
if(x==4){
double minnn=1000000;
for(int i=0;i<=3;i++){
minnn=min(minnn,dp(a,b,c,d,i,y)/(54-sum));
}ans+=minnn;
}
if(y==4){
double minn2=1000000;
for(int i=0;i<=3;i++){
minn2=min(minn2,dp(a,b,c,d,x,i)/(54-sum));
}ans+=minn2;
}
f[a][b][c][d][x][y]=ans+1.000;
return f[a][b][c][d][x][y];
}
int main(){
scanf("%d%d%d%d",&A,&B,&C,&D);
double goal=dp(0,0,0,0,4,4);
if(goal>54) printf("-1.000");
else
//printf("%.3lf",goal);
cout<3)<return 0;
}
왜 tyvj (쓰레기 OJ) printf 가 WA 를...
또 하나의 tyvj 1933 도 수학 적 기대 인 것 같은 데...
HelenKeller
2016.7.2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.