Skip to main content

Command Palette

Search for a command to run...

AtCoder: abc250 (Swift)

Published
1 min read
  • ここ数回参加できていなかったり、準備がギリギリになったりで最初に設定で手間取ってしまった
  • ここ最近はアルゴ式をコツコツやっているおかげが問題自体は順調に解けて4完
  • 緑になれたので自分ではとりあえずの目標クリア
  • Dまでは安定して解けるし、時間も割と残せている
  • 今後、水色を目指すためにはE以降の問題に取り組んでいきたい
  • とはいえ、最初の方の問題の方が解きやすいから、気軽なんだよなぁ

A - Adjacent Squares

  • 端でなければ隣にますがあるとということで+1

提出

B - Enlarged Checker Board

  • 計算量はあまり見ずに、B問題だったら力技で大丈夫だろうと押し切った
  • あんまり使ってないBool変数の .toggle() がパッと使えたのは嬉しかった
  • for文がネストされていくのはちょっと気持ち悪いけれど、解くまでの時間を重視して
  • ブロックごと、ラインごとに処理して、それらを組み合わせた方が実行時間は早そう
  • そっちの方が読みやすくなりそう

提出

C - Adjacent Swaps

  • 実際の配列と、それぞれの数字の位置を記録する配列の二つの配列を
  • swapAt(_:_:)を使おうと思っていたけれども、実装中にはすっかり忘れていた
  • とはいえ、値はすでに変数として持っていたから、そこまでの手間はなかったけれど
  • 逆に手間がないからこそ使い損ねたのかも

提出

D - 250-like Number

  • qの最大値を求めるのに q <= 1018 とせずに、 p = 2として、q <= 5 * 1017として、手元で計算してしまった
  • 実行時の計算量がそこまで変わるわけではないし、不要な手間だった
  • 素数の一覧が出せてからは計算量はそこまでないし、素直に解いて終わり
  • と入っても、計算量はそこまでに考えずに手元でテスト通ったらそのまま出してしまった
  • D問題とかなら一旦計算量とか落ち着いて考える癖をつけた方がいいかな
  • 二分木探索をされている方を見るとなるほど…と思わされる
  • guard p * p * p * p < N else { break }がないと通らない原因がいまいちわかっていない…

提出

E - Prefix Equality

  • コンテスト中は、メモリを多用する形しか思いつかず、ほぼ力技でACできず
  • 今日はちょっと時間切れなので、また後日取り組みたい

提出

More from this blog

swift-collectionsのSortedCollectionsを試す方法

swift-collectionsを読み込む際にmainブランチを指定する 2024年4月14日現在のswift-collectionsのリリースバージョン1.1.0では、SortedCollectionsが含まれていません(取り除かれました…)。そのため、SortedCollectionsを利用するにはリリースブランチではなく、mainブランチを利用する必要があります。 package.swiftで指定する場合は、下記のようにdependenciesでブランチを指定します。 // swift-...

Apr 14, 20241 min read

Swift 5.9からの `swift package init` の変更点

先日、 swift package init コマンドを使った際にswift 5.9に合わせた変更点に気づきました。 情報があまりなく、私自身が戸惑ったこともあり、コマンドを実行する時の--typeを基準にどういった変更があったのか概要をまとめたいと思います。 Init template cleanup #6144 Swift Fromsでの議論によると、狙いとしてはシンプルなユースケースへの最適化にあるようです。 system-module、manifestと、empty これまであった、 s...

Dec 25, 20231 min read

アルゴ式: 961 Q4. 二部グラフ判定 (DFS ver.) (Swift)

Q4. 二部グラフ判定 (DFS ver.) なんとか毎日問題は解いていたけれども、ブログは空いてしまった Bool?に対してSwitch文を書こうとしたけれども、Optionalの場合は、.some()を挟むというので方針を変更 提出したコードはその名残が残ってしまった 提出はしていないけれども簡単な修正もした このブログを書いている際に、改めてSwitch分で書いたりもした(1, 2) 提出 AC

Jun 18, 20221 min read

Continuous Tumbling

123 posts

Learning Swift/Swift UI, and competitive programming. (he/him)