1666: 锁
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:3
解决:0
题目描述
给出N和K,要求生成从0到2N-1的一个序列,序列的第一项为0,并且该序列满足一下三个条件:
(1)序列长度为2N,保证0到2N-1每个数都用了且只用了一次。
(2)序列中任意两相邻的数都是由前一个数在其二进制下,改变了具有相同值的若干个位而形成的,即把其中若干个0变为1,或把其中若干个1变为0,并且只能二选一。
(3)当存在多少个序列满足前两个条件的时候,要保证字典序最小,即由前一个数生成后一个数的时候,要挑值最小的数(当然是满足前两个条件的情况下)。
现在问你这个序列前K项中最大值是多少,输出其二进制形式,注意一定要输出N位,包括前导零。
输入
仅一行两个整数N、K。
输出
一个二进制表示的数,为所求的答案。
样例输入 复制
3 8
样例输出 复制
1 1 1
提示
【样例解释】
整个序列为“000”,“001”,“011”,“010”,“110”,“100”,“101”,“111”。
【数据规模】
1≤N≤50,1≤K≤2N,注意K可能超过longint。