[POLY] 폴리오미노
PS/종만북2018. 4. 16. 20:17
[POLY] 폴리오미노 : https://algospot.com/judge/problem/read/POLY
### DP ###
< 소스코드 >
poly(up, n) : 윗층에 up개의 블럭이 쌓여있을 때, n 개로 폴리오미노를 만들 수 있는 방법의 수.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <stdio.h> const int MOD = 10000000; int d[101][101]; int poly(int up, int n) { int ret = 0; if(n == 0) return 1; if(n == 1) return up; if(d[up][n]) return d[up][n]; for(int down=1; down<=n; down++) { ret += (poly(down, n-down)*(up+down-1)); ret %= MOD; } return d[up][n] = ret; } int main() { int tc; scanf("%d", &tc); while(tc--) { int n, ans=0; scanf("%d", &n); for(int i=1; i<=n; i++) { ans += poly(i, n-i); ans %= MOD; } printf("%d\n", ans); } return 0; } | cs |
>> 15 : 곱해줘야하는데, 더해서 시간을 많이 소비했다....
'PS > 종만북' 카테고리의 다른 글
[MATCHORDER] 출전 순서 정하기 (0) | 2018.04.20 |
---|---|
[NUMBERGAME] 숫자게임 (0) | 2018.04.17 |
[ASYMTILING] 비대칭 타일링 (0) | 2018.04.16 |
[TRIPATHCNT] 삼각형 위의 최대 경로 수 세기 (0) | 2018.04.15 |
[TILING2] 타일링 (0) | 2018.04.15 |