문제풀이/누적합

https://www.acmicpc.net/problem/5549 코드import sysinput = sys.stdin.readlinem, n = map(int, input().split())k = int(input())map_data = [input() for _ in range(m)]# 누적합accum = [[[0]*3 for _ in range(n+1)] for _ in range(m+1)]for i in range(1, m+1): for j in range(1, n+1): accum[i][j][0] = accum[i-1][j][0]+accum[i][j-1][0]-accum[i-1][j-1][0] accum[i][j][1] = accum[i-1][j][1]+accum[..
https://www.acmicpc.net/problem/20116 코드n, l = map(int, input().split())x = list(map(int, input().split()))center = x[-1] # 무게 중심num = 1for i in range(n-2, -1, -1): if center = (x[i]+l): print("unstable") exit() center = ((center*num)+x[i])/(num+1) # 위에서부터 i번째까지의 무게 중심 num += 1 # i번째까지 상자 개수print("stable") i번째보다 높은 상자들의 무게 중심이 i번째 상자 안에 있는지 판별해야 하므로 위에서부터 내려와야 한다. 우..
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] # 그레이드 ..
10211번: Maximum Subarray 크기 N인 정수형 배열 X가 있을 때, X의 부분 배열(X의 연속한 일부분) 중 각 원소의 합이 가장 큰 부분 배열을 찾는 Maximum subarray problem(최대 부분배열 문제)은 컴퓨터 과학에서 매우 잘 알려져 있 www.acmicpc.net 코드 for _ in range(int(input())): n = int(input()) x = list(map(int, input().split())) # 누적합 preSum = [0] for i in range(n): preSum.append(preSum[-1]+x[i]) # 브루트포스 ans = -int(1e9) for l in range(n): for r in range(l+1, n+1): if pre..
딜레이레이
'문제풀이/누적합' 카테고리의 글 목록