2022. 8. 20. 23:35ㆍPS/백준
굉장히 오랜만에 올리는 포스팅~ 방학동안 버클리에 가 있어서 백준을 못한게 크다 ㅜㅜ. 본론으로 들어가자.
문제는 m개의 재료 중에서 n개를 선택해서 그 값들의 곱을 모두 더하는 것이다!! 간단히 주어진 예제로 생각해보면 값이 각각 x,y,z라고 할 때
x3+y3+z3+x2(y+z)+y2(z+x)+z2(x+y)+xyx
를 구하는 것이다. 우리가 생각할 수 있는 것은 이 식을 어떻게 좀 간단하게 할 수 있냐는 것이다. 놀랍게도 위의 식은 다음과 같이 간단하게 표현된다!
x5(x−y)(x−z)+y5(y−x)(y−z)+z5(z−x)(z−y)
값이 서로 다른 m개의 재료 중에서 n개를 선택해서 값을 모두 구하는 함수를 f(n,m)이라 정의하자.
Claim. f(n,m)=m∑i=1an+m−1i∏mj=1, j≠i(ai−aj)
우리는 f(n,m)를 더 작은 꼴로 나눠서 생각해 볼 수 있다. m번째 재료를 반드시 사용한다고 하자. 그럼 amf(n−1,m)이 되겠다. 반대로 m번째 재료는 사용하지 않는다고 하면 f(n,m−1)이 된다. 따라서 다음을 얻는다.
f(n,m)=amf(n−1,m)+f(n,m−1)
이때 우리가 f(n−1,m), f(n,m−1)의 값이 Claim의 값과 같다고 가정하자. 그럼
f(n,m)=amm∑i=1an+m−2i∏mj=1, j≠i(ai−aj)+m−1∑i=1an+m−2i∏m−1j=1, j≠i(ai−aj)
각 항에 있는 i를 t<m로 고정해서 생각해보자. 그럼
aman+m−2t∏mj=1, j≠t(at−aj)+an+m−2t∏m−1j=1, j≠t(at−aj)=an+m−2tam+(at−am)∏mj=1, j≠t(at−aj)=an+m−1t∏mj=1, j≠t(at−aj)
반면 f(n,0)=0, f(0,n)=1임이 자명하므로 귀납법에 의해 증명 되었다.
'PS > 백준' 카테고리의 다른 글
[BOJ 3904] The Teacher's Side of Math (0) | 2022.09.02 |
---|---|
[BOJ 19549] 레이저 연구소 (6) | 2022.08.21 |
[BOJ 16123] 피타고라스 쌍 (0) | 2022.07.14 |
[BOJ 15868] Yule Lads (0) | 2022.06.17 |
[BOJ 13729] 1013 피보나치 (0) | 2022.06.16 |