就是n可以被1到n/2的所有数表示出来;
我一开始写了个把二进制数里的1拿出来,但是WA了两个点;
分治?
好多人说数据有问题,我也不知道,也不想知道;
%:include<cstdio> %:include<cstring> %:include<algorithm> using namespace std; const int maxn=1e5+10; int m; int sum; int a<:maxn:>; int main() <% scanf("%d",&m); while(m>0) <% m%2==0?a<:++sum:>=m/2:a<:++sum:>=m/2+1; m /= 2; %> sort(a+1,a+sum+1); printf("%d ",sum); for(int i=1;i<=sum;i++) <% printf("%d ",a[i]); %> return 0; %>