ICPC上海 C题 Sum of Log
Pro:
https://codeforces.com/gym/102900/problem/C
给定\(X\),\(Y\)
计算
\[\sum_{i=0}^X \sum_{j=0}^Y [i\&j=0] \lfloor log(i+j)+1 \rfloor
\\
X,Y<=1e9
\\
1e4组数据
\]
Sol:
易证:
\(i\&j=0\)且\(i>=j\)时
\(log(i+j)+1=log(i)+1\)
因此
我们可以先把答案拆成
\(i<=X,j<=Y,i>=j\)的\(ans\)加上\(i<=Y,j<=Y,i>=j\)的\(ans\)
这个玩意可以通过同时数位\(dp\)两个数字来实现
复杂度实现的好一点即可做到\(30*2*2\)
因此总复杂度\(O(T*30*2*2*2)\)
(不妨设X>=Y)