ABC193(2021/02/27)振り返り
A問題、B問題
難なく実装。
C問題
テストケースが、100000→99634だったから、a^bで表せない数を見つけるより、表せる数366個を見つけるほうが速そうだと推測(ここまでは合ってた)。
2 , 2^2 , 2^3 , ... , 3 3^2 , 3^3 , ... と数えていくが、4 , 4^2 , 4^3 , ... は 2^2 , 2^4 , 2^6 , ... と被るから除外したほうが良さそう。
つまり、平方数を除外する。
と思って書いてみたけど、実行してみたら99622で、12個多く除外してた。
原因調べたいけど、どこで間違えてるのかわからずにタイムアップ。
今思うと2^6 = 8^2 みたいな重複を取り除けてなかったってことだと思う。多分。
(D問題は、ちらっと見てみたけど残り時間的に厳しそうでパスした)
コンテスト終わってからかつっぱさんのYouTube見て、Pythonにsetというデータ型があることを知る。
集合演算を行えるデータ型で、重複を自動的に取り除くことができる。これは便利。
あと、Pythonのforループの開始、終了の指定方法と、リストの合計とか平均を求める関数もわかった
# 知ってた書き方
for i in range(10):
# 初めて知った書き方
for i in range(4, 10):
# 知ってた書き方
a = [2, 4, 6]
SUM = 0
for i in a:
SUM += i
print(SUM)
# 初めて知った書き方
a = [2, 4, 6]
print(sum(a))
↓かつっぱさん ABC193 A~D問題
https://www.youtube.com/watch?v=IhqWKe3F3Wc
↓Python set型
https://note.nkmk.me/python-set/
↓Python リストの合計
この記事が気に入ったらサポートをしてみませんか?