CSP考前打了一下这个东西
查看原帖
CSP考前打了一下这个东西
26603
星梦童趣Doxitce楼主2020/10/30 20:41

CSP考前打了一下这个东西,去年没参加CSP,看一下第一题 普及-,就打了一下 小样例都过了,大样例过不了。我想要是考试我就挂了。 找规律不太可做,就二分模拟了一下,谁能看看 大样例 是哪里出错了,只得了15分?

#include<cstdio>

#include<iostream>

using namespace std;

int n;

unsigned long long k;

void check(unsigned long long l,unsigned long long r,int g,int q)

{

    if(l==r) return;

    unsigned long long mid=(l+r-1)/2;

    if(q==0)

    {

        if(g==0)

        {

            if(k<=mid)

            {

                putchar('1');

                check(l,mid,1,1);

            }

            else {

                putchar('0');

                check(mid+1,r,1,0);

            }

        }

        if(g==1)

        {

            if(k<=mid)

            {

                putchar('0');

                check(l,mid,g,0);

            }

            else {

                putchar('1');

                check(mid+1,r,g,1);

            }

        }

    }

    if(q==1)

    {

        if(g==0)

        {

            if(k<=mid)

            {

                putchar('0');

                check(l,mid,g,0);

            }

            else {

                putchar('1');

                check(mid+1,r,g,1);

            }

        }

        if(g==1)

        {

            if(k<=mid)

            {

                putchar('1');

                check(l,mid,0,1);

            }

            else {

                putchar('0');

                check(mid+1,r,0,0);

            }

        }

    }

} 

int main()

{

    cin>>n>>k;

    check(0,(1<<n)-1,1,0);

    return 0;

}
2020/10/30 20:41
加载中...