log 2021-10-13
sport
bj 9465 - 스티커
https://www.acmicpc.net/problem/9465
python solution
안뗀 경우에 대해 이전에도 안뗀 경우를 포함하지 않아서 1회 틀림 바꾸었는데도, 뭔가 고려를 잘못한 것인지, 풀리지가 않는다. 어디가 잘못된 것인지 분석 필요.
def solve():
T=ria()[0]
for tt in range(T):
nn=ria()[0]
arr1=ria()
arr2=ria()
dp=create2DArray(nn,3,0)
for ii in range(nn):
dp[ii][0] = max(dp[ii-1][1], dp[ii-1][2])+arr1[ii]
dp[ii][1] = max(dp[ii-1][0], dp[ii-1][2])+arr2[ii]
dp[ii][2] = max(dp[ii-1][0], dp[ii-1][1], dp[ii-1][2])
print(max(dp[nn-1][0], dp[nn-1][1], dp[nn-1][2]))
pass
bj 15724 - 주지수
https://www.acmicpc.net/problem/15724
python solution
def solve():
N,M=ria()
maps=create2DArray(N,M,0)
sums=create2DArray(N,M,0)
for rr in range(N):
maps[rr]=ria()
for cc in range(M):
sums[rr][cc] = maps[rr][cc]
if(cc!=0):
sums[rr][cc]+=sums[rr][cc-1]
for rr in range(N):
for cc in range(M):
if(rr!=0):
sums[rr][cc]+=sums[rr-1][cc]
# print2DArray(maps)
# print('sums')
# print2DArray(sums)
K=ria()[0]
for kk in range(K):
r1,c1,r2,c2=ria()
minsr=0
minsc=0
plusm=0
if(r1-2>=0 and c1-2>=0):
plusm=sums[r1-2][c1-2]
if(c1-2>=0):
minsr=sums[r2-1][c1-2]
if(r1-2>=0):
minsc=sums[r1-2][c2-1]
diff=sums[r2-1][c2-1]-minsr-minsc+plusm
print(diff)
pass
Comments