携程编程——1004 ( 旋转的二进制 )

来源:互联网 发布:单片机工程师 编辑:程序博客网 时间:2024/06/14 02:03
#include<cstring>#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<stack>#include<cstdlib>using namespace std;unsigned __int64 a[100];int main(){    __int64 i,j,n,m,t,mm,mmm;    scanf("%I64d",&t);    while(t--)    {        memset(a,0,sizeof(a));        scanf("%I64d %I64d",&m,&n);        unsigned __int64 tt=n-1;        mm=1;        while(tt--)        {            mm=mm*2+1;        }        for(i=0;i<=n;i++)        {            if(i!=0) mmm=a[i-1];            else mmm=m;            unsigned __int64 num=(mmm<<1);            if(num>mm)            {                num=num-mm;                a[i]=num;            }            else a[i]=num;        }        sort(a,a+n);        for(i=0;i<n;i++)            printf("%I64d",(a[i]&1));        printf("\n");    }    return 0;}


0 0