
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
[Python]2進数 エイシング2020D - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
[Python]2進数 エイシング2020D - Qiita
エイシング2020D Xは非常に大きな値になるので、単純にシミュレートすることはできません。 ここで、Xの... エイシング2020D Xは非常に大きな値になるので、単純にシミュレートすることはできません。 ここで、Xのpopcountは高々Nであることから、Xをpopcountで割った値は必ずN未満となります。 また、Xiを反転させたとき、そのような整数のpopcountは(Xのpopcount±1)に等しいです。 したがって、まず1~Nまでのすべての数について、それらをpopcountで割ったあまりに置き換えて0になるまでの操作回数を求めておき、次に、Xi=1であるような各桁について、(Xのpopcount+1)で割ったあまりの総和と(Xのpopcount-1)で割ったあまりの総和を求めておくと、f(Xi)を、Xiが1であれば、(Xのpopcount-1)で割ったあまりの総和-2^iを(Xのpopcount-1)で割ったあまりを求め、これを(Xのpopcount-1)で割ることで、N未満の数を得る