🍟

nim言語で競プロをしたときに、HashSetでメモリ超過(MLE)が起きる

2023/11/20に公開

初めに

nim言語を使ってatcoderで問題を解こうとしているときに、HashSetを使うとMLEが起きる状況に遭遇しました。

なぜMLEしたのか

解決法

  • 引数なしでの呼び出しを定義しなおしておく
proc initHashSet[T](): Hashset[T] = initHashSet[T](0)
  • これをinitHashSetの呼び出しより上に書いておくことで、引数なしで呼び出した際における初期化のサイズを0にする

    • (スマートな他の方法があるかも)
    • (0でなくてもいいかも)
  • 解決した提出のページ: https://atcoder.jp/contests/abc277/submissions/47770081

おわりに

まさかデフォルトで64個にされるとは思いませんでした。 これうれしい瞬間あるんですか?

誤字脱字や内容の間違い、質問などがあればコメントをください。

Discussion