어읽로꾸거
BOJ 14613 너의 티어는? 본문
링크
https://www.acmicpc.net/problem/14613
풀이
조합(!)을 이용하여 확률을 계산하려 했으나. 오버플로우 문제를 생각안하고 (안푼지 오래되서 전혀 생각을 못함) 그냥 풀었다가 다시 정신을 차리고 DP로 풀었음.
코드
#include<stdio.h>
int main()
{
//freopen("input.txt","r",stdin);
double w_r, l_r, d_r;
double b, s, g, p, d;
double dp[21][41];
int score;
b = s = g = p = d = 0.0;
scanf("%lf %lf %lf", &w_r, &l_r, &d_r);
for(int i=0; i<=40; i++){
dp[0][i]=0;
}
dp[0][20]=1;
//i = played game
//j = rank
for(int i = 1; i <= 20; i++){
for(int j = 0; j <= 40; j++){
if(j==0)
dp[i][j] = (dp[i-1][j+1]*l_r);
else if(j==40)
dp[i][j] = (dp[i-1][j-1]*w_r);
else
dp[i][j] =
(dp[i-1][j+1] * l_r) +
(dp[i-1][j] * d_r) +
(dp[i-1][j-1] * w_r);
}
}
for(int i = 0; i < 10; i++)
b += dp[20][i];
for(int i=10; i < 20; i++)
s += dp[20][i];
for(int i=20; i < 30; i++)
g += dp[20][i];
for(int i=30; i < 40; i++)
p += dp[20][i];
d = dp[20][40];
printf("%.8lf\n%.8lf\n%.8lf\n%.8lf\n%.8lf\n",b,s,g,p,d);
}
'알고리즘' 카테고리의 다른 글
BOJ 15647 로스팅하는 엠마도 바리스타입니다 (0) | 2019.09.19 |
---|---|
BOJ 3187 양치기 꿍 (0) | 2019.09.15 |
BOJ 1038 감소하는 수 (0) | 2019.09.15 |
BOJ 17141 연구소 2 (0) | 2019.09.13 |
BOJ 6186 Best Grass (0) | 2019.04.23 |