📖定数除算最適化再考12025/07/09に公開2025/08/222件整数除算逆数乗算techGitHubで編集を提案DiscussionMizar/みざー3ヶ月前に更新1/d を c/2^a で近似したとき、どの程度除算の結果が一致するかを数え上げさせる問題を作っていました。どの程度まで完全一致するかを見る際の、検算程度の応用はできるかもしれません。 https://yukicoder.me/problems/no/2440 問題 Q 個のクエリが与えられる。 i 番目のクエリ (1\leq i\leq Q) では、整数 N_i,D_i,M_i,S_i が与えられる。 1\leq n\leq N_i かつ \displaystyle\left\lfloor\frac{n}{D_i}\right\rfloor=\left\lfloor\frac{M_i\times n}{2^{S_i}}\right\rfloor となるような 整数 n がいくつあるかを数え上げ、 C_i とおく。 この整数 C_i を答えよ。 制約 1\le Q\le 10000 N_i = 10^{18}\quad(1\le i\le Q) 1\le D_i\le 10^{18}\quad(1\le i\le Q) 0\le M_i\le 10^{18}\quad(1\le i\le Q) 0\le S_i\le 120\quad(1\le i\le Q) 入力はすべて整数 Mizar/みざー3ヶ月前に更新Accuracy of Integer Division Approximate Functions は Floor sum を用いた解法を想定した問題です。 Floor sum は以下のような問題です: https://atcoder.jp/contests/practice2/tasks/practice2_c 問題 この問題は T ケース与えられます。 N,M,A,B が与えられます。 \sum_{i=0}^{N−1}\mathrm{floor}((A\times i+B)/M) を求めてください。 制約 1\le T\le 100,000 1\le N,M\le 10^9 0\le A,B\lt M 注: Accuracy of Integer Division Approximate Functions においては、上記 Floor sum の入力制約を 1\le N\le 10^{18}\simeq 0.87\times 2^{60},\ 1\le M\le 2^{120}\simeq 1.33\times 10^{36},\ 0\le A,B\le 10^{36} 程度に緩めたもの(計算途中は最大で 2^{180} 程度の値が現れる恐れがある)を考慮する必要があります。 Floor sum の大まかな説明としては kyopro_friends さんの説明が解りやすいかと思います。 https://x.com/kyopro_friends/status/1304063876019793921 https://x.com/kyopro_friends/status/1304065446950305792 Floor sum についての他の解説: https://atcoder.jp/contests/practice2/editorial/579 https://qiita.com/sounansya/items/51b39e0d7bf5cc194081 https://qiita.com/AkariLuminous/items/3e2c80baa6d5e6f3abe9#4-floor_sum 返信を追加
Mizar/みざー3ヶ月前に更新1/d を c/2^a で近似したとき、どの程度除算の結果が一致するかを数え上げさせる問題を作っていました。どの程度まで完全一致するかを見る際の、検算程度の応用はできるかもしれません。 https://yukicoder.me/problems/no/2440 問題 Q 個のクエリが与えられる。 i 番目のクエリ (1\leq i\leq Q) では、整数 N_i,D_i,M_i,S_i が与えられる。 1\leq n\leq N_i かつ \displaystyle\left\lfloor\frac{n}{D_i}\right\rfloor=\left\lfloor\frac{M_i\times n}{2^{S_i}}\right\rfloor となるような 整数 n がいくつあるかを数え上げ、 C_i とおく。 この整数 C_i を答えよ。 制約 1\le Q\le 10000 N_i = 10^{18}\quad(1\le i\le Q) 1\le D_i\le 10^{18}\quad(1\le i\le Q) 0\le M_i\le 10^{18}\quad(1\le i\le Q) 0\le S_i\le 120\quad(1\le i\le Q) 入力はすべて整数 Mizar/みざー3ヶ月前に更新Accuracy of Integer Division Approximate Functions は Floor sum を用いた解法を想定した問題です。 Floor sum は以下のような問題です: https://atcoder.jp/contests/practice2/tasks/practice2_c 問題 この問題は T ケース与えられます。 N,M,A,B が与えられます。 \sum_{i=0}^{N−1}\mathrm{floor}((A\times i+B)/M) を求めてください。 制約 1\le T\le 100,000 1\le N,M\le 10^9 0\le A,B\lt M 注: Accuracy of Integer Division Approximate Functions においては、上記 Floor sum の入力制約を 1\le N\le 10^{18}\simeq 0.87\times 2^{60},\ 1\le M\le 2^{120}\simeq 1.33\times 10^{36},\ 0\le A,B\le 10^{36} 程度に緩めたもの(計算途中は最大で 2^{180} 程度の値が現れる恐れがある)を考慮する必要があります。 Floor sum の大まかな説明としては kyopro_friends さんの説明が解りやすいかと思います。 https://x.com/kyopro_friends/status/1304063876019793921 https://x.com/kyopro_friends/status/1304065446950305792 Floor sum についての他の解説: https://atcoder.jp/contests/practice2/editorial/579 https://qiita.com/sounansya/items/51b39e0d7bf5cc194081 https://qiita.com/AkariLuminous/items/3e2c80baa6d5e6f3abe9#4-floor_sum 返信を追加
Mizar/みざー3ヶ月前に更新Accuracy of Integer Division Approximate Functions は Floor sum を用いた解法を想定した問題です。 Floor sum は以下のような問題です: https://atcoder.jp/contests/practice2/tasks/practice2_c 問題 この問題は T ケース与えられます。 N,M,A,B が与えられます。 \sum_{i=0}^{N−1}\mathrm{floor}((A\times i+B)/M) を求めてください。 制約 1\le T\le 100,000 1\le N,M\le 10^9 0\le A,B\lt M 注: Accuracy of Integer Division Approximate Functions においては、上記 Floor sum の入力制約を 1\le N\le 10^{18}\simeq 0.87\times 2^{60},\ 1\le M\le 2^{120}\simeq 1.33\times 10^{36},\ 0\le A,B\le 10^{36} 程度に緩めたもの(計算途中は最大で 2^{180} 程度の値が現れる恐れがある)を考慮する必要があります。 Floor sum の大まかな説明としては kyopro_friends さんの説明が解りやすいかと思います。 https://x.com/kyopro_friends/status/1304063876019793921 https://x.com/kyopro_friends/status/1304065446950305792 Floor sum についての他の解説: https://atcoder.jp/contests/practice2/editorial/579 https://qiita.com/sounansya/items/51b39e0d7bf5cc194081 https://qiita.com/AkariLuminous/items/3e2c80baa6d5e6f3abe9#4-floor_sum
Discussion
Accuracy of Integer Division Approximate Functions は Floor sum を用いた解法を想定した問題です。 Floor sum は以下のような問題です:
注: Accuracy of Integer Division Approximate Functions においては、上記 Floor sum の入力制約を1\le N\le 10^{18}\simeq 0.87\times 2^{60},\ 1\le M\le 2^{120}\simeq 1.33\times 10^{36},\ 0\le A,B\le 10^{36} 程度に緩めたもの(計算途中は最大で 2^{180} 程度の値が現れる恐れがある)を考慮する必要があります。
Floor sum の大まかな説明としては kyopro_friends さんの説明が解りやすいかと思います。
Floor sum についての他の解説: