H. Mood Balance
- 坐标变换:令\(y_i=x_i+2i\)
- 2147483648=\(2^{31}\) 缺少的一位是符号位
点击查看代码
#include <bits/stdc++.h>
using namespace std;
vector<int>ans;
int main()
{
long long n;
cin>>n;
int cnt=0;
ans.push_back(-2);
for(int i=0;i<63;i++)
{
if((((2*n)>>i)&1)==1)
{
ans.push_back((*(--ans.end()))+cnt+2);
cnt=0;
}
else
{
cnt++;
}
}
cout<<ans.size()-1<<endl;
reverse(++ans.begin(),ans.end());
for(int i=1;i<ans.size();i++)
{
cout<<n-ans[i]<<' ';
}
cout<<endl;
return 0;
}