AOJ 2444 : Substring

Substring | Aizu Online Judge

制約がnもmも10^5あるので愚直解はまず通らなそう。
Suffix Arrayを合ってるか分からないけど言葉だけ思い出したが、
実装できる自信はない・・・。

少し悩んだらローリングハッシュというものを思い出した。
前処理O(n)、区間クエリO(1)でできるようなので今回はこれを採用(簡単そうだし)。

「ローリングハッシュ」と検索して一番上に出てくる id:odan3240 さんの記事のコードを移植する。

odan3240.hatenablog.com

名前だけ知っていたロリハを実際に使ったのは2016年夏合宿で
そのときの記憶を頼りに最初はMを2^60などと置いていたが
オーバーフローしているようでサンプルが合わない。
おとなしく記事の通りにしてACをもらう。

http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2355679#1

今回は体調が優れなかったので気分転換にD言語で解きました。

(オーバーフローぐらい、自分の感覚で把握できるようになりたいなあ)