[WEEK05] DAY32 & TMI
DAY32
2021.12.02 THU
アルゴリズム1ヶ月コースの最終日!
昨日の未明まで、私は過去の4週間の授業を復習し、2週間目に復習を終えた.
今周C言语を勉强して、休みたい时、3-4周间のアルゴリズムの概念を再复习します.
2579段阶(DP)
コード#コード#
import sys
n = int(sys.stdin.readline())
stairs = [int(sys.stdin.readline()) for _ in range(n)]
dp = [[0 for _ in range(2)] for _ in range(n)]
# dp[n] = n번째 계단까지 밟았을 때 최대 점수
if n == 1:
print(stairs[0])
else:
dp[0][0] = stairs[0]
dp[1][0], dp[1][1] = stairs[1], stairs[1] + stairs[0]
for i in range(2, n): # n번째 = i
dp[i][0] = max(dp[i - 2][0], dp[i - 2][1]) + stairs[i] # 규칙2
dp[i][1] = dp[i - 1][0] + stairs[i] # 규칙1
print(max(dp[n - 1][0], dp[n - 1][1]))
..
1202箸箸箸泥箸(グリディ、DFS)
コード#コード#
import sys
from heapq import heappush, heappop
input = sys.stdin.readline
n, k = map(int, input().split())
jewerly = tmp = []
for i in range(n):
m , v = map(int, input().split())
jewerly.append([m, v])
bag = [int(input()) for _ in range(k)]
jewerly.sort()
bag.sort()
result = i = 0
for b in bag:
## 현재 가방의 무게보다 무게가 작은 보석들을 찾음
while i < n and jewerly[i][0] <= b:
heappush(tmp, -jewerly[i][1])
i += 1
## 가치가 제일 큰 보석을 tmp에서 빼고 result에 넣는다
if tmp:
result -= heappop(tmp)
print(result)
お尻をよく使いましょう.
.
1520下坂(DP)
コード#コード#
import sys
input = sys.stdin.readline
# 상하좌우 방향
# 다음값이 현재 값보다 < 작을 때만 이동
# DP[N] = (n-1, n-1)까지 항상 내리막길로만 이동하는 경로의 개수
def dfs(x, y):
if [x, y] == [N-1, M-1]:
return dp[x][y]
if dp[x][y] != -1: # 탐색한 길일 때
return dp[x][y]
dp[x][y] = 0 # 탐색한 길은 0(초깃값) 경로값은 가산할 예정
for i in range(4):
nx = x + dx[i] # 행
ny = y + dy[i] # 열
if 0<=nx<N and 0<=ny<M and arr[x][y] > arr[nx][ny]: # 범위 안에 있고, 이동할 좌표의 값이 현재위치 값보다 작으면
dp[x][y] += dfs(nx, ny) # 경로 가산
return dp[x][y]
N, M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
dp = [[-1] * M for _ in range(N)] # -1 아니어도 됨
dp[-1][-1] = 1 # 최종 도착지
dx = [1, -1, 0, 0] # 하 상
dy = [0, 0, 1, -1] # 우 좌
print(dfs(0,0))
疲れた疲れた.アルゴリズムパーキングは終了したものの、以降も1~2日以内に1つのアルゴリズムを解き続けるので、アルゴリズム/Python学習を行うことにした.
新しいC語学の勉強も頑張ります
Reference
この問題について([WEEK05] DAY32 & TMI), 我々は、より多くの情報をここで見つけました https://velog.io/@yerimii11/WEEK05-DAY32-TMIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol