재밌는 계단수들
This commit is contained in:
@@ -1,7 +0,0 @@
|
|||||||
N, K = map(int, input().split())
|
|
||||||
Ws = [tuple(map(int, input().split())) for i in range(N)] # weight, value
|
|
||||||
|
|
||||||
DP = [[0] * N] * K
|
|
||||||
|
|
||||||
print(DP)
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
N = int(input())
|
|
||||||
#3차원
|
|
||||||
temper = [0 for i in range(N)]
|
|
||||||
count = 0
|
|
||||||
|
|
||||||
def C(t):
|
|
||||||
T = [0 for i in range(10)]
|
|
||||||
for i in t:
|
|
||||||
T[i] = True
|
|
||||||
if all(T) is True:
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def I(l, k):
|
|
||||||
global count
|
|
||||||
if 0 <= k <= 9:
|
|
||||||
temper[l - 1] = k
|
|
||||||
if l == 1:
|
|
||||||
if C(temper):
|
|
||||||
count += 1
|
|
||||||
count %= 1000000000
|
|
||||||
else:
|
|
||||||
I(l - 1, k - 1)
|
|
||||||
I(l - 1, k + 1)
|
|
||||||
else:
|
|
||||||
return
|
|
||||||
|
|
||||||
for i in range(1,10):
|
|
||||||
I(N, i)
|
|
||||||
print(count % 1000000000)
|
|
||||||
18
zeta_python/completed/12865.py
Normal file
18
zeta_python/completed/12865.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
N, K = map(int, input().split())
|
||||||
|
Ws = [tuple(map(int, input().split())) for i in range(N)] # weight, value
|
||||||
|
|
||||||
|
D = [[0] * (K + 1) for _ in range(N + 1)]
|
||||||
|
|
||||||
|
|
||||||
|
def solve(k):
|
||||||
|
global D
|
||||||
|
for n in range(1, N + 1):
|
||||||
|
for k in range(1, K + 1):
|
||||||
|
if Ws[n - 1][0] <= k:
|
||||||
|
D[n][k] = max(Ws[n - 1][1] + D[n - 1][k - Ws[n - 1][0]], D[n - 1][k])
|
||||||
|
else:
|
||||||
|
D[n][k] = D[n - 1][k]
|
||||||
|
return D[N][K]
|
||||||
|
|
||||||
|
|
||||||
|
print(solve(K))
|
||||||
17
zeta_python/completed/1562.py
Normal file
17
zeta_python/completed/1562.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
N = int(input())
|
||||||
|
|
||||||
|
D = [[0] * (1 << 10) for _ in range(10)]
|
||||||
|
|
||||||
|
for i in range(1, 10):
|
||||||
|
D[i][1 << i] = 1
|
||||||
|
|
||||||
|
for i in range(0, N - 1):
|
||||||
|
Dn = [[0] * (1 << 10) for _ in range(10)]
|
||||||
|
for n in range(10):
|
||||||
|
for m in range(1024):
|
||||||
|
if n < 9:
|
||||||
|
Dn[n][m | (1 << n)] += D[n + 1][m] % 1000000000
|
||||||
|
if n > 0:
|
||||||
|
Dn[n][m | (1 << n)] += D[n - 1][m] % 1000000000
|
||||||
|
D = Dn
|
||||||
|
print(sum([D[i][1023] for i in range(10)]) % 1000000000)
|
||||||
23
zeta_python/completed/18244.py
Normal file
23
zeta_python/completed/18244.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
N = int(input())
|
||||||
|
|
||||||
|
Mem = [[[-1] * 5 for _ in range(0, 10)] for _ in range(N)]
|
||||||
|
|
||||||
|
|
||||||
|
def I(l, k, b):
|
||||||
|
if b > 2 or b < -2:
|
||||||
|
return 0
|
||||||
|
if l == 0:
|
||||||
|
return 1
|
||||||
|
if Mem[l - 1][k][b] != -1:
|
||||||
|
return Mem[l - 1][k][b]
|
||||||
|
|
||||||
|
re = 0
|
||||||
|
if 0 < k:
|
||||||
|
re += I(l - 1, k - 1, b - 1 if b < 0 else -1) % 1000000007
|
||||||
|
if k < 9:
|
||||||
|
re += I(l - 1, k + 1, b + 1 if b > 0 else 1) % 1000000007
|
||||||
|
Mem[l - 1][k][b] = re
|
||||||
|
return re
|
||||||
|
|
||||||
|
|
||||||
|
print(sum(I(N - 1, i, 0) for i in range(0, 10)) % 1000000007)
|
||||||
Reference in New Issue
Block a user