答える数が特殊。y = P ⋅ Q − 1 y=P \cdot Q^ {-1} y = P ⋅ Q − 1 がm o d 1 0 9 + 7 \mod 10^9 + 7 mod 1 0 9 + 7 で求まっているとき、N ≡ − y N \equiv -y N ≡ − y である。
gcd \gcd g cd の期待値を求める問題だが、総和が求まればよい。
GCDごとに求める典型を思い出す。f ( X , r ) : = ∣ { ( x 0 , . . . , x N − 1 ) ∈ X : gcd ( x 0 , . . . , x N − 1 ) = r } ∣ f(X, r) := |\{(x_0, ..., x_{N-1}) \in X : \gcd(x_0, ..., x_{N-1}) = r\}| f ( X , r ) := ∣ {( x 0 , ... , x N − 1 ) ∈ X : g cd( x 0 , ... , x N − 1 ) = r } ∣ とする時、求める総和は∑ r r f ( X , r ) \sum_r rf(X, r) ∑ r r f ( X , r ) と表せる。最大公約数の代わりに公約数を考える: F ( X , r ) : = ∣ { ( x 0 , . . . , x N − 1 ) ∈ X : r が x 0 , . . . , x N − 1 の公約数 } ∣ F(X, r) := |\{(x_0, ..., x_{N-1}) \in X : r が x_0, ..., x_{N-1}の公約数\}| F ( X , r ) := ∣ {( x 0 , ... , x N − 1 ) ∈ X : r が x 0 , ... , x N − 1 の公約数 } ∣ 。r r r が x 0 , . . . , x N − 1 x_0, ..., x_{N-1} x 0 , ... , x N − 1 の公約数であることはx 0 , . . . , x N − 1 x_0, ..., x_{N-1} x 0 , ... , x N − 1 がすべてr r r の倍数であることと同値で、これは成分毎にわけて数えられる。つまり、[ A i , B i ] [A_i, B_i] [ A i , B i ] 中のr r r の倍数の数が⌊ B i / r ⌋ − ⌊ ( A i − 1 ) / r ⌋ \lfloor B_i / r \rfloor - \lfloor (A_i-1) / r \rfloor ⌊ B i / r ⌋ − ⌊( A i − 1 ) / r ⌋ で、F ( ∏ i [ A i , B i ] , r ) = ∏ i ( ⌊ B i / r ⌋ − ⌊ ( A i − 1 ) / r ⌋ ) F(\prod_i [A_i, B_i], r) = \prod_i \bigl( \lfloor B_i / r \rfloor - \lfloor (A_i-1) / r \rfloor \bigr) F ( ∏ i [ A i , B i ] , r ) = ∏ i ( ⌊ B i / r ⌋ − ⌊( A i − 1 ) / r ⌋ ) と計算できる。F ( X , r ) = ∑ r ∣ m f ( X , m ) F(X, r) = \sum_{r|m} f(X, m) F ( X , r ) = ∑ r ∣ m f ( X , m ) なので、f f f はF F F のメビウス変換で得られる。
全体の計算量は、B = max B i B= \max B_i B = max B i としてO ( B K + B log log B ) {O}(BK + B\log\log B) O ( B K + B log log B ) 。⌊ A / r ⌋ \lfloor A / r \rfloor ⌊ A / r ⌋ が高々O ( A ) {O}(\sqrt A) O ( A ) 種類の値しか取らないから、頑張ればO ( K B ) {O}(K \sqrt B) O ( K B ) でできる?
ABC162 E がこれの簡単バージョンだったことを思い出した。