BOJ 1121 - 도형

image.png

선분을 여러개로 하나의 직선처럼 쓸 수 있는 경우도 고려해야되는줄알고 풀이가 꼬였다.

KK각형을 만들 수 있는 조건은 KK개 의 선분중에서 가장 큰 것을 KK 번째라고 할 때,

i=1K1Li>LK\sum_{i=1}^{K-1}L_i > L_K 여야 한다는 것이다.

dp[i][j][k]=idp[i][j][k]=i 번째까지 선분까지 사용할 수 있고 jj 개를 써서 선분 길이의 총합이 kk 인 것의 경우의 수라고 한다면

xx 번째 선분을 쓰려고 할 때는 dp[x1][k1][Lx+1]dp[x-1][k-1][L_x+1 \sim \infty] 까지의 합을 모두 정답에 더해주면 된다.

물론 선분들의 길이의 합이 5000050000을 넘어갈 수 있는데, 이 경우 5000150001 같은 값으로 처리해두면 된다.

시간복잡도는 O(NKL)O(NKL) 이다.

Tags:

Categories:

Updated:

Comments