AGC033 D - Complexity
解答
code: python
H,W = map(int, input().split())
"""
init
"""
for i in range(H):
ok = [Aij for j in range(W)] if k!=W-1 and okk==okk+1: else:
for j in range(i+1,H):
for k in range(W):
if k!=W-1 and okk==okk+1: else:
for k in range(W):
ok = [Aik for i in range(H)] if i!=H-1 and oki==oki+1: else:
for l in range(k+1,W):
for i in range(H):
if i!=H-1 and oki==oki+1: else:
"""
update
"""
for ans in range(17):
exit(print(ans))
"""
dp_c:たての切断の分を更新
dp_r:よこの切断の分を更新
どちらもダブリングの要領で
"""
for i in range(H):
for j in range(i,H):
for k in range(W):
if next_c < W:
for k in range(W):
for l in range(k,W):
for i in range(H):
if next_r < H:
"""
dp_c:よこの切断の分を更新
jについて単調性があるのでjごとに尺取り
"""
for i in range(H):
for k in range(W):
l = k-1
while l!=W-1 and j <= dp_rkl+1i: l += 1
"""
dp_r:たての切断の分を更新
lについて単調線があるのでlについて尺取り
"""
for k in range(W):
for i in range(H):
j = i-1
while j!=H-1 and l <= dp_cij+1k: j += 1
テーマ
メモ