Skip to main content

Command Palette

Search for a command to run...

AtCoder: ABC250 E - Prefix Equality (Swift)

Published
1 min read

E - Prefix Equality

ハッシュを配列に入れる方法

参考:Kiri8128さんの解説

  • コンテスト中は愚直にセットを配列に入れてREとTLEを出していたのが、ハッシュの配列にすればいいという方針
  • Kiri8128さんのコードも見ていたが、最初は、SetのhashValueを使ってみてTLE(おしい)
  • 計算量はhashValueのドキュメントには記載されていない
  • Kiri8128さんのハッシュの算出方法だと随時更新できるし、軽量そうなのでそのまま利用させていただいてAC
  • このハッシュを保存していくのは応用できそうだし、覚えておきたい
  • 一方で、Kiri8128さんもご自身で触れているがハッシュ衝突のリスクを受け入れるかの判断は必要になりそう

配列を置換する方法

参考:hamamuさんの解説

  • 数字を記号として認識して、それをAを基準に昇順に置換する方法
  • その際、それまでの種類数と最大値も記録
  • Bでも、Aと同じ置換を行い、やはり種類数と最大値を記録
  • 今回の問題のように数字が純粋に記号として与えられている場合、それを置換することで最大値などの数字としての特性を活かせるようにするのは面白い
  • 応用性がどれだけあるかわからないが、覚えておきたい
  • AC

(追記:2022-05-14)

XOR

参考:m_99さんの解説

  • 解説をチラ見したあと、自力で似たようなことをやろうとして失敗していた
  • 解説にある二つの前計算を一緒にやろうとして、ちゃんと前計算1を最後までやっていなかったのが原因
  • ちゃんと分けて書いたらAC
  • Setで追加して、増えるかどうか判断できるのは便利
  • removeからinsertに書き換えたら実行速度が改善した

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)