我的好像是最好理解的题解
2026-09-27 20:33:34
发布于:浙江
1阅读
0回复
0点赞
先祝大家AK CSP!!! rp++



首先,由本题要求可很容易的看出优秀的拆分一定是偶数,所以我们先特判,如果n为奇数,则输出-1。然后找比n小的最大2的x次方,输出最大2的x次方,再使n减去最大2的x次方循环下去即可。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
if(n%2==1){
cout << -1;
return 0;
}
while(n){
int p=1;
while(n>=p)p*=2;
cout << p/2 << " ";
n-=(p/2);
}
return 0;
}
点个赞呗



这里空空如也








有帮助,赞一个