题目名称 | 2311. [HZOI 2015]简单的01串 |
---|---|
输入输出 | get_kth.in/out |
难度等级 | ★ |
时间限制 | 100 ms (0.1 s) |
内存限制 | 64 MiB |
测试数据 | 10 |
题目来源 | Aglove 于2016-05-13加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:1, 通过率:100% | ||||
Aglove | 100 | 0.003 s | 0.32 MiB | C++ |
关于 简单的01串 的近10条评论(全部评论) |
---|
将n位至少含有一个零和一个一的二进制串(允许前导零)按字典序从小到大排序后开始取数
每次取一个二进制串之后将序列中的这个串的取反串,逆序串和逆序取反串删掉
求第k次取数所取的二进制串
如果第k次取数时已经没有数字可以取,输出-1
第一行输入n,k如题意所示
n<=50,k<=10^12
输出答案所求的二进制串
4 4
0101
样例解释:
排序: 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110
之后我们会分成五组:{0001, 0111, 1000, 1110}, {0010, 0100, 1011, 1101}, {0011, 1100}, {0101, 1010}, {0110, 1001}
取完组里的第一个之后其余的数字会被删掉
所以第四组的第一个就是我们要求的答案
题目来源:codeforces