2022-09-03から1日間の記事一覧

ABC267E - Erasing Vertices 2

考え方 回答例 考え方コスト最低の頂点から消す. 隣接頂点に対し,消した頂点の分のコストを修正してpushする. (ダイクストラに似ている)回答例 from heapq import heappop, heappush N, M = map(int, input().split()) A = list(map(int, input().split…

ABC267D - Index × A(Not Continuous ver.)

考え方 回答例 考え方dp[i][j]=$i$コ目まで決めて,$j$コ選んだ場合の最大値.回答例 N, M = map(int, input().split()) A = list(map(int, input().split())) dp = [[-1<<60] * (M + 1) for _ in range(N + 1)] dp[0][0] = 0 for i in range(N): for j in r…

ABC267C - Index × A(Continuous ver.)

考え方 回答例 考え方\begin{aligned} &\sum_{i = 1}^{M} i \times A_{k + i} \\ &=\sum_{i = 1}^{M} (k + i) \times A_{k + i} - k\sum_{i = 1}^{M} A_{k + i} \end{aligned}だから,累積和を2種類計算しておけば良い.回答例 N, M = map(int, input().spli…

ABC267B - Split?

考え方 回答例 考え方言われたことを愚直にやる.回答例 S = list(input()) row = [[7], [4], [8, 2], [5, 1], [9, 3], [6], [10]] if S[0] != '0': exit(print('No')) for i in range(7): if all(S[x - 1] == '0' for x in row[i]):continue for j in range…