※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 17211번 문제인 좋은 날 싫은 날이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/17211
17211번: 좋은 날 싫은 날
지은이가 건국한 나라인 유애나에 살고 있는 재현이는 너무 단순한 나머지 매일이 기분이 좋은 날, 기분이 싫은 날 두가지로 나누어진다. 어느 날 지은이는 재현이에 대한 놀라운 사실을 발
www.acmicpc.net
N일 후에 기분이 좋을 확률은 (N-1일 후에 기분이 좋을 확률) * (기분이 좋은 날 다음 날에 기분이 좋을 확률)과 (N-1일 후에 기분이 싫을 확률) * (기분이 싫은 날 다음 날에 기분이 좋을 확률)과 같이 구할 수 있음을 관찰하자. 또한 이와 비슷하게 N일 후에 기분이 싫을 확률을 계산해낼 수 있다.
위의 점화관계와 반복문을 이용해 구하고자 하는 값을 구해 문제를 해결하자. long double 자료형을 이용하면 문제에서 요구하는 정밀도로 충분히 계산할 수 있으므로 참고하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
typedef long double ld;
int N, E;
ld A, B, C, D;
ld GOOD, BAD;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> E >> A >> B >> C >> D;
if (E == 0) GOOD = 1;
else BAD = 1;
while (N--) {
ld good = GOOD * A + BAD * C;
ld bad = GOOD * B + BAD * D;
GOOD = good, BAD = bad;
}
cout << fixed;
cout.precision(0);
cout << GOOD * 1000 << ' ' << BAD * 1000;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 15841 // C++] Virus Outbreak (0) | 2023.02.02 |
---|---|
[BOJ 15687 // C++] 직사각형 (0) | 2023.02.02 |
[BOJ 1090 // C++] 체커 (0) | 2023.02.01 |
[BOJ 27261 // C++] Номера по диагонали (0) | 2023.01.31 |
[BOJ 27325 // C++] 3 つの箱 (Three Boxes) (0) | 2023.01.31 |