Skip to main content

Command Palette

Search for a command to run...

アルゴ式: 943 木の 2 頂点間の距離 (Swift)

Published
1 min read

木の 2 頂点間の距離

  • 昨晩に問題を見て布団で考えていたものを今朝実装
  • いろいろ考えられども、考え始めると実装したくなるし、睡眠にはよくないかも?
  • 整理していて、避けようとしていたことは、忘れて普通に同じ考えを辿って思い出した気がする
  • 今回は寝る前に考える方法はうまくいかなかったかな
  • また、試してもよいとは思う
  • 昨日に引き続きSetを使って実装
  • ユニークなノード数が、接続に必要な枝の数と同じになるということを利用
  • insertの返り値を使った方法でも実装したけれども、Setのドキュメントをみて、[symmetricDifference(_:)](symmetricDifference(_:))も見つけたので、それを利用した実装もしてみた
  • 加えて1巡目で距離を記録して、2巡目で1巡目で記録した距離に見つかったら解答する方法も実装してみた
  • こっちの方が考え方としては素直なんだろうけど、実装としてはちょっと複雑になるかなぁ
  • 競技プログラミングという文脈では実行速度も大事だけど、結局は計算複雑性さえ外さなければ影響は少ない
  • 簡潔なコードでの読みやすさもミスを減らせて大事だよな、と改めて考えさせられる

提出

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)