rt,昨天完蛋了,写了个 C,不知道是假结论(k量级错了,拆位不对)还挂了,不需要条。
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1009];
void _main(){
int n;
cin>>n;
if(n==1){
cout<<1<<endl;
cout<<1<<endl;
return;
}
int k;
k=0;
for(int i=0;i<=62;i++){
if(n&(1ll<<i)){
k++;
}
}
memset(a,0,sizeof(a));
int zz;
zz=0;
for(int i=60;i>=0;i--){
if(n&(1ll<<i)){
zz++;
}
for(int j=1;j<=k;j++){
if(j!=zz&&(n&(1ll<<i))){
a[j]+=(1ll<<i);
}
}
}
cout<<k+1<<endl;
for(int i=1;i<=k;i++){
cout<<a[i]<<" ";
}
cout<<n<<" ";
cout<<endl;
}
signed main(){
int t;
cin>>t;
while(t--){
_main();
}
return 0;
}