Jamie and Binary Sequence
题意:给两个数n、k,要你找出一个大小为k的序列s,要求Σ2^si=n,并且该序列最大的数最小,除去最大之后的序列字典序最大。
思路:可以先忽略要求求出一个符合Σ2^si=n的序列,然后拆成符合条件的序列(Si=2*Si-1)。按照题目要求,我们拆最大的数,一直拆到序列大小符合k。这样拆满足了序列最大的数最小,但并没有满足字典序最大。因为当最大的数有多个时,拆到这个数时已经满足序列最大的数最小,这时如果继续拆下去就破坏了字典序最大,所以接下来应该拆最小的数。
#include <iostream>
#include <fstream>
#include <cstdio>
#include <