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

カレンダーアイコン
2021/06/14

ABC166 - A.A?C

AtCoder公式 | ABC166 - A.A?C

解答

s = input()
print('ABC' if s == 'ARC' else 'ARC')

要点解説メモ

  • シンプルにやる

ABC166 - B.Trick or Treat

AtCoder公式 | ABC166 - B.Trick or Treat

解答

n, k = map(int, input().split())
cnt = [0] * n
for _ in range(k):
    d = int(input())
    aaa = list(map(int, input().split()))
    for a in aaa:
        cnt[a-1] += 1
print(cnt.count(0))

要点解説メモ

  • シンプルにやる

ABC166 - C.Peaks

AtCoder公式 | ABC166 - C.Peaks

解答

n, m = map(int, input().split())
hhh = list(map(int, input().split()))
abab = [list(map(int, input().split())) for _ in range(m)]
is_highest = [True] * n
for a, b in abab:
    if hhh[a - 1] <= hhh[b - 1]:
        is_highest[a - 1] = False
    if hhh[b - 1] <= hhh[a - 1]:
        is_highest[b - 1] = False
print(sum(is_highest))

要点解説メモ

  • 道ひとつひとつに注目する
  • 塔2つのうち、高さが低いor同じ塔は、良い塔でない
  • すべての道に対して、上記をもとに良い塔でないフラグをたてていき、残った塔が良い塔
  • つながりを無向グラフとして考えて、つながっている塔のうち最も高ければ良い塔、としても良さそう

ABC166 - D.

AtCoder公式 | ABC166 - D.

解答

まだ解いていません

要点解説メモ