就是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;
%>
 

 

相关文章:

  • 2021-07-06
  • 2021-07-24
  • 2021-10-17
  • 2021-11-26
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-01
  • 2021-12-08
  • 2021-07-06
  • 2022-03-09
  • 2021-09-18
相关资源
相似解决方案