[思考题] [HAOI2006] [bzoj1192]鬼谷子的钱袋

时间:2021-11-09 15:04:05

题目梗概

有m个金币,要放进n个袋子里面。要求这些袋子必须可以组成1-m这些个金币的情况下数量最少。

 

思考

一开始以为是递推啥的,但是转念一想应该用二进制来表示1-m这些数的,不重复而且每一个十进制数都可以用二进制数来表示。

#include <cstdio>
#include
<cmath>
int main(){
unsigned
int m;
scanf(
"%d",&m);
m
= log2(m);
printf(
"%d",m+1);
return 0;
}

 

吐槽

洛谷的题目需要输出方案,所以略坑。 因为5 按照划分应该是 1  2  2 但是不符合规则 所以需要特判 1 1 3

 

最后说点题外话,最近没怎么写题目了。不是因为我颓废了,而且伤病在身,没法上机。只能拿手机看看题目,想想思路。