エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
競技プログラミングで頻出の「ダブリング」を解説する
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
競技プログラミングで頻出の「ダブリング」を解説する
競技プログラミングでは頻繁に出てくる「ダブリング」という手法について説明しようと思います。 競プロ... 競技プログラミングでは頻繁に出てくる「ダブリング」という手法について説明しようと思います。 競プロをはじめて間もない人や、競プロ外の人に向けて書きたいと思います。 最初に予防線を張っておきますが、内容が正しいかどうかは保証しません。 繰り返し二乗法繰り返し二乗法という有名なアルゴリズムがあります。 例えば、3の100億(10^10)乗を計算せよと言われた時に、 1回1回計算していたのでは時間がいくらあっても足りません。 しかし繰り返し二乗法を使えば、log(100億)くらいの計算量で計算出来るようになります。 具体的にどういう仕組みかを説明するために より小さな場合として3の11乗を計算するとした時に、 3^11 = (3^8) x (3^2) x (3^1) と3^(2^k)の積に分解出来るならば、 11を1011と2進数で表した時の1の数分だけで計算が終わることになります。 (a^bは