くろたんく雑記帳

日常とか、わんちゃんとか、機械学習とか、競プロとか、

MENU

AtCoder Beginner Contest 180 参加ログ・感想

今日は、飲み始めてたんだけど、急に開催と気づいてまぁ気軽にやるかと思ったんだけど、ABCD完(Dで10ペナもしちゃったけど)

けんちょんさんの本で勉強しているおかげか?!

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

  • 作者:大槻 兼資
  • 発売日: 2020/10/02
  • メディア: 単行本(ソフトカバー)


内容

  • Python3でやっている。
  • 参加ログ。
  • 所感。
  • コンテスト中に何を考えたか。
  • コンテスト後に解説をみたり、少し整理したりしたくらいの内容。
  • 問題の詳細で細かく書こうと思うものは別記事とする。
  • E以上はとりあえず現状自力では無理なのでDまで。解けるようになってきたら更新するかも

結果

ABCD完。これまでよりも比較的簡単な印象ではあった。 Bは実装するだけで、Cは約数列挙とすぐ気づいた。Dは最初はどっちかの訓練を選ぶだけと思ったが、そうではなく経験値が倍数方向のに増える方が経験値が足算方向に増えるよりも小さいときは倍数方向の訓練、大きくなってしまうなら、足算方向の訓練ってかんがえればできたが、while文の条件をミスって最後の最後にようやく気づいて駆け込みABCD完。久しぶりにいいfinish


どう考えたか + α

A - box

問題タイプ:足し算と引き算

n, a, b = map(int, input().split())
ans = n - a + b
print(ans)

B - Various distances

問題タイプ:式の実装 そのまま、計算式を実装する。

n = int(input())
x = [int(i) for i in input().split()]
Manhattan  = 0
Euclidean = 0
Chebyshev = - 10**5 - 1
for i in x:
    Manhattan  += abs(i)
    Euclidean += i ** 2
    Chebyshev  = max(abs(i), Chebyshev )
print(Manhattan)
print(Euclidean ** (1/2))
print(Chebyshev)

C - Cream puff

問題タイプ:約数列挙

問題の意図的に約数を列挙すればいい。 約数列挙のポイントは、 * 素数の時と同様に{\displaystyle \sqrt(n)}まで見れば良い * 試し割りしていった値が割れるなら、リストに加える。さらに、その値で割った結果もリストに加えていくこと。
別記事にする。

追記:

blacktanktop.hatenablog.com


D - Takahashi Unevolved

問題タイプ:最適条件を見つける感じ?

{\displaystyle x * a}{\displaystyle b}よりも小さいかつ{\displaystyle x * a}{\displaystyle y}よりも小さいなら、カコモンジムに通う({\displaystyle x}{\displaystyle a}倍していく方)。残りはAtCoderジムに通う。ここは割り算処理するのでぴったりの処理だけ気をつける。別記事にする。

追記:

blacktanktop.hatenablog.com


おわりに

久しぶりのABCD完。嬉しい。Highestになったけど、まだまだ沼に使っている・・・。定常的にこのくらいはできるようになりたい。

引き続き、精進と書籍のまとめ続けていこう。

blacktanktop.hatenablog.com

blacktanktop.hatenablog.com