[白俊]2248号-(Python Python)-DP
質問リンク:https://www.acmicpc.net/problem/2248
この問題において、nビットのバイナリ数とその中の1ビットがm個である場合の点火方式は
(N,M)=(N-1,M)+(N-1,M-1).
この問題において、nビットのバイナリ数とその中の1ビットがm個である場合の点火方式は
(N,M)=(N-1,M)+(N-1,M-1).
N, L, I = map(int, input().split())
dp = [[0] * 32 for _ in range(32)]
#dp 테이블에 저장
for i in range(31):
dp[0][i] = 1
for i in range(1, 32):
dp[i][0] = dp[i-1][0]
for j in range(1, 32):
dp[i][j] = dp[i-1][j] + dp[i-1][j-1]
#출력
for n in range(N, 0, -1):
if I <= dp[n-1][L]:
print('0', end="")
else:
print('1', end="")
I -= dp[n-1][L]
L -= 1
Reference
この問題について([白俊]2248号-(Python Python)-DP), 我々は、より多くの情報をここで見つけました https://velog.io/@hamfan524/백준-2248번-Python-파이썬-DPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol