ABC173 - Atcoder/Python精進のための解説メモ

2020/11/26

ABC173 - A.Payment

AtCoder公式 | ABC173 - A.Payment

解答

n = int(input())
print(1000 - (n % 1000) if n % 1000 != 0 else 0)

要点メモ

  • やるだけ

ABC173 - B.Judge Status Summary

AtCoder公式 | ABC173 - B.Judge Status Summary

解答

n = int(input())
judge = ['AC', 'WA', 'TLE', 'RE']
cnt = [0] * 4
for _ in range(n):
    s = input()
    cnt[judge.index(s)] += 1
for i in range(4):
    print(judge[i], "x", cnt[i])

要点メモ

  • 丁寧にやるだけ

ABC173 - C.H and V

AtCoder公式 | ABC173 - C.H and V

解答

h, w, k = map(int, input().split())
ccc = [input() for _ in range(h)]
ans = 0
for bit_h in range(2 ** h):
    for bit_w in range(2 ** w):
        cnt = 0
        for hi in range(h):
            for wi in range(w):
                if (bit_h >> hi) & 1 == 0 and (bit_w >> wi) & 1 == 0:
                    if ccc[hi][wi] == '#':
                        cnt += 1
        if cnt == k:
            ans += 1
print(ans)

要点メモ

  • bit全探索の典型
  • 塗りつぶすかどうかは各行列で2択なので、bit全探索が適しているよねと気づきたい
  • 行も列もどちらも塗りつぶさないとなっている黒マスの数を数える
  • あとはそれが求める黒マス数かどうか判別するのみ

ABC173 - D.

AtCoder公式 | ABC173 - D.

解答

まだ解いてません

要点メモ