#include <bits/stdc++.h>
using namespace std;
int dp0[100000000] = {0}, dp1[100000000] = {0};
long long sum_0 = 0, sum_1 = 0;
int main() {
for(int i = 1; i <= 20222022; i++) {
dp0[i] = dp0[i >> 1] + !(i & 1);
sum_0 += dp0[i];
dp1[i] = dp1[i >> 1] + (i & 1);
sum_1 += dp1[i];
}
cout << sum_0 << sum_1 << endl;
}
//230401142 Process exited after 0.5841 seconds with return value 0
//230401142 Process exited after 0.3744 seconds with return value 0
这个方法还是不够快,单单是一个求0的个数就被金牌爷甩了0.2秒