AtCoder Beginner Contest 156の感想

ABC156に参加した。

AtCoder Beginner Contest 156 - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.

A – Beginner

普通の1次方程式。

n, r = map(int, input().split())

if n >= 10:
    print(r)
else:
    print(r + 1000 - 100 * n)

B – Digits

10進数をK進数にすると、Kで割れる回数+1桁になる。

n, k = map(int, input().split())

cnt = 0

while n // k != 0:
    cnt += 1
    n /= k

print(cnt + 1)

C – Rally

N<=100なので全探索で間に合う。

import numpy as np

n = int(input())
x = np.array([int(x) for x in input().split()])

ans = 10 ** 10
for i in range(1, 101):
    temp = x - i
    ans = min(ans, sum([j ** 2 for j in temp]))

print(ans)

D – Bouquet

答えが 2^n – 1 – nCa – nCb になるのは分かったが、2^nとnCkを高速に求める方法を知らなかった。

Cまでの3完で終了。

追記

以下の記事でD問題を解いた。

コメント

タイトルとURLをコピーしました