Loading...
次のように定義する: g(m,n)=(m⊕n)+(m∨n)+(m∧n)g(m,n) = (m \oplus n) + (m \lor n) + (m \land n)g(m,n)=(m⊕n)+(m∨n)+(m∧n) ここで⊕,∨,∧\oplus, \lor, \land⊕,∨,∧はそれぞれビットごとの排他的論理和(XOR)、論理和(OR)、論理積(AND)である。
また次のように定義する: G(N)=∑n=0N∑k=0nG(k,n−k)\displaystyle G(N) = \sum_{n=0}^N \sum_{k=0}^n G(k,n-k)G(N)=n=0∑Nk=0∑nG(k,n−k) 例えば、G(10)=754,G(102)=583766G(10) = 754, G(10^2) = 583766G(10)=754,G(102)=583766である。
G(1018)G(10^{18})G(1018)を求めよ。答えは1 000 000 0071\,000\,000\,0071000000007で割った余りを入力せよ。