문제 링크
- http://icpc.me/1086
사용 알고리즘
- Bit DP
시간복잡도
- $O(2^NK)$
풀이
N 제한이 15인 점에서 bit dp를 생각해봅시다.
각 수들의 사용 여부를 비트로 나타낸 다음, $D(bit, mod)$를 현재 상태에서 수들의 사용 여부가 $bit$이고 현재 합친 수를 $K$로 나눈 나머지가 $mod$인 경우의 수로 정의해주면 bit dp를 할 수 있습니다.
각 수의 길이가 최대 50글자이므로, 그대로 저장하면 안 되고 K로 나눈 나머지로 저장해야 합니다.
bit dp를 알고 있다면 어렵지 않게 풀 수 있는 문제입니다.
전체 코드
1 |
|