DP

·문제풀이/DP
https://www.acmicpc.net/problem/16432 코드import sysinput = sys.stdin.readlinen = int(input())arr = []for _ in range(n): input_data = list(map(int, input().split())) arr.append(input_data[1:])dp = [[[]for _ in range(10)] for _ in range(n)]for a in arr[0]: # 첫째날 dp[0][a] = [a]for i in range(1, n): for a in arr[i]: for j in range(1, 10): if a != j and dp[i-1][j] != [..
https://www.acmicpc.net/problem/2876 코드import sysinput = sys.stdin.readlinen = int(input())grades = [(0, 0)]for _ in range(n): a, b = map(int, input().split()) grades.append((a, b))dp = [[[0]*2 for _ in range(2)] for _ in range(n+1)] # 왼쪽 학생, 오른쪽 학생ans = [0, 5] # 명수, 그레이드for i in range(1, n+1): for j in range(2): # i번째 책상의 2명의 학생 dp[i][j][1] = grades[i][j] # 그레이드 ..
·문제풀이/DP
https://www.acmicpc.net/problem/14430 코드n, m = map(int, input().split())board = [list(map(int, input().split())) for _ in range(n)]dp = [[0]*(m+1) for _ in range(n+1)]for i in range(1, n+1): for j in range(1, m+1): dp[i][j] = max(dp[i-1][j], dp[i][j-1])+board[i-1][j-1] # 위 or 왼쪽에서print(dp[n][m])  로봇은 아래나 오른쪽으로 한 칸만 이동할 수 있다. 그렇기 때문에 (i, j)칸까지 얻을 수 있는 자원의 최대 숫자는 한 칸 위와 한 칸 왼쪽 중 최대값과 현재..
·문제풀이/DP
21923번: 곡예 비행동헌이는 모형 비행기 조종 대회에 참가하였다. 이 대회에서는 격자 모양의 공간에서 모형 비행기를 조종하여 얻는 비행 점수로 순위를 매긴다. 격자의 각 칸에는 점수가 부여되어 있고, 비행www.acmicpc.net 코드n, m = map(int, input().split())scores = [[0]+list(map(int, input().split())) for _ in range(n)]up = [[-int(1e9)]*(m+1) for _ in range(n+1)] # 상승 비행 점수down = [[-int(1e9)]*(m+1) for _ in range(n+1)] # 하강 비행 점수up[n-1][1] = scores[n-1][1] # 출발점# 상승for j in range..
·문제풀이/DP
15993번: 1, 2, 3 더하기 8첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 100,000보다 작거나 같다.www.acmicpc.net 코드dp = [[0]*2 for _ in range(100001)] # 홀수, 짝수dp[1][0] = 1dp[2][0] = 1dp[2][1] = 1dp[3][0] = 2dp[3][1] = 2for i in range(4, 100001): dp[i][0] = (dp[i-1][1]+dp[i-2][1]+dp[i-3][1]) % 1_000_000_009 dp[i][1] = (dp[i-1][0]+dp[i-2][0]+dp[i-3][0]) % 1_000_000_009for _ in ..
딜레이레이
'DP' 태그의 글 목록 (3 Page)