身为一名高中生,却还是不知廉耻地做了一遍普及组的题目,体验一把AK的感觉
T1 优秀的拆分
T1还是一如既往的水。
根据题意,奇数直接-1,偶数就从一个很大的2的幂开始枚举,n比这个数大就输出这个数并且n减去这个数,然后这个数/2。
#include<iostream> using namespace std; int n; int main() { cin>>n; if(n&1){ cout<<-1; return 0; } for(int i=(1<<30);i>0;i/=2){ if(n>=i){ cout<<i<<" "; n-=i; } } return 0; }