P2320 [HNOI2006]鬼谷子的钱袋——进制(没事就别看这个了)

就是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\n",sum);
    for(int i=1;i<=sum;i++)
    <%
        printf("%d ",a[i]);
    %>
    return 0;
%>
 

 

posted @ 2019-09-26 19:37  AiRomance  阅读(125)  评论(0编辑  收藏  举报