AtCoder 修行日記#35
35日目
ABCのB問題を実施中。
勉強用のコンテンツはここから。
https://kenkoooo.com/atcoder/#/table/
進捗と一言感想
[B問題] 1問(残り29問)
ABC062:Picture Frame
特になし。
[C問題] 1問(残り164問)
ABC162:Sum of gcd of Tuples (Easy)
最初は、下記の参考を元に実装。ただし、時間切れ…。(2205 ms)
工夫が必要だけど思いつかず、他の方のAC提出を参考にする。
参考:
Pythonで最大公約数と最小公倍数を算出・取得 | note.nkmk.me
from functools import reduce import math def gcd(*numbers): return reduce(math.gcd, numbers) k = int(input()) sum = 0 for a in range(1,k+1): for b in range(1,k+1): for c in range(1,k+1): sum += gcd(a, b, c) print(sum)
[修正後]
import math k = int(input()) sum = 0 for a in range(1,k+1): for b in range(1,k+1): ab = math.gcd(a,b) for c in range(1,k+1): sum += math.gcd(ab, c) print(sum)
→こちらは、1446 msだったので、2秒以内。ブログに記載されていた関数をかませると冗長になる典型でした。(悲しい…)
それに、3個以上を考える場合は、2つの最小公約数をその分だけ一つずつ再計算するだけで良かった。
参考
https://kenkoooo.com/atcoder/#/user/dandan611?userPageTab=AtCoder+Pie+Charts
Aizu Online Judge
www.youtube.com
目標
- まず、今年中に茶色コーダー
学習方針
- 参考:レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 - Qiita
- 一日一題。(C問題までは!)
- コンテストにもなるべく参加する
- ちなみに言語はpython。
- つまったら10分くらいで解説動画見る
以上。