BOJ 33470 수열과 쿼리와 확률 2
BOJ 33470 수열과 쿼리와 확률 2
문제 내용
길이 의 수열 이 주어집니다. 여기에 다음 종류의 연산 중 하나를 무작위로 총 번 수행합니다.
- 번 연산()은 를 로 변경합니다.
- 번 연산은 모든 에 대해 를 로 변경합니다.
각 연산은 독립적으로 정해지며, 각 연산이 뽑힐 확률은 서로 같습니다.
이때 다음의 두 종류의 질문에 대해 답을 출력하세요.
S: 초기 상태에서 원소의 합을 , 최종 상태에서 원소의 합을 이라고 할 때 의 기댓값P: 초기 상태에서 원소의 곱을 , 최종 상태에서 원소의 곱을 이라고 할 때 의 기댓값
문제 풀이
스포일러
S 질문에 대한 답을 먼저 구해 봅시다.
1회의 연산을 수행했을 때, 각각의 는 의 확률로 , 의 확률로 가 곱해지며, 그 외에는 값이 바뀌지 않습니다. 그 결과의 기댓값은 입니다. 이 과정을 번 수행하면 기댓값에 이 번 곱해집니다. 이는 2번 정도 적용하였을 때 모든 결과와 확률을 나열하고 이를 가지고 기댓값을 계산한 다음, 이를 인수분해하여 확인할 수 있습니다.
최종 상태에서 원소의 합의 기댓값은 기댓값의 선형성에 의해 최종 상태에서 각 원소의 기댓값의 합과 같으므로, 을 얻습니다.
P 질문에 대한 답은 전체의 곱이 어떻게 바뀌는지로 알 수 있습니다. 비슷하게 분석해보면, 1회의 연산을 수행하였을 때 전체 곱은 의 확률로 배, 의 확률로 배가 됩니다.
그 결과의 기댓값은 이 됩니다. 역시 독립적으로 번 수행했을 때의 기댓값은 이 됩니다.
이 크고 모듈로가 소수이므로 분할정복 거듭제곱과 페르마 소정리를 이용하여 답을 구할 수 있습니다.
Last updated on