【题目链接】 【题目大意】 给出一个尺寸N。 你需要取一个2^k (k是任你选的)的巧克力出来,然后切若干刀(每刀把一个巧克力切开成两半一样大小的) 最终在其中取出若干个块巧克力,使得加起来的尺寸等于N。 最终输出2^k和切得刀数。 在保证2^k最小的前提下,切刀数要最少。 【算法分析】 同属于被{ms}题= = 假如N=2^k,那么直接输出 2^k 0 否则输出最小的一个k满足,N<2^k (用log2求就可以了), 然后输出将n变成二进制以后从个位数上去的{dy}个“1”和k的差即可。 【其它】 YY一下就懂了。 【CODE】 #include <cstdio> |