AtCoder ABC 061 B – Counting Roads Python解説
Counting Roads
N 個の都市があり、M 本の道路があります。
i番目の道路は、都市aiとbiを双方向に結んでいます。
同じ 2 つの都市を結ぶ道路は、1 本とは限りません。各都市から他の都市に向けて、何本の道路が伸びているか求めてください。
AtCoder株式会社 AtCoder Beginner Contest 061
各都市を結ぶ道路の本数を管理したいので、今回は連想配列を使って解いてみました。
n, m = map(int, input().split())
a = {}
# *1
for i in range(1, n+1):
a[i] = 0
# *2
for _ in range(m):
x, y = map(int, input().split())
a[x] += 1
a[y] += 1
for i in a.values():
print(i)
(*1)まずは連想配列を使って、各都市の道路を0 で初期化しています。都市の番号は1から始まるので初期化する際、気を付けましょう。
(*2)続くfor文では入力から受け取った値をx、yに格納しています。ここで与えられた値が道路の本数なので、a[x]、a[y]の道路をそれぞれ+1しています。
最後に辞書の値だけ使うので、values()で値だけ出力します。