题目描述
本题译自 eJOI2019 Problem B. Hanging Rack
有一棵 n 层的满二叉树,第 i 层(0≤i≤n−1)有 2i 个结点。
第 i 层(1≤i≤n−1)的第 j 个结点(1≤j≤2i),是第 i−1 层第 ⌈2j⌉ 个结点的子结点。如 j 是奇数则是左子结点,否则是右子结点。
每个叶子结点都可以挂衣服。
对于每个非叶子结点,设它左子树和右子树上分别挂了 wl 和 wr 件衣服,要求挂完每件衣服后都有 wl−wr∈{0,1}(注意不能为 −1)。
请求出第 k 件衣服应该挂在第几个叶子结点,输出这个编号模 109+7 的值。
输入格式
一行,两个正整数 n,k。
输出格式
一行,一个正整数,表示所求叶子结点编号模 109+7 的值。
3 2
5
5 10
19
数据范围与提示
对于 100% 的数据,保证 1≤k≤min{2n,1018}。
子任务编号 |
数据范围 |
分值 |
1 |
1≤n≤10 |
20 |
2 |
1≤n≤20 |
20 |
3 |
1≤n≤106 |
60 |