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

题目梗概

有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

 

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

转载于:https://www.cnblogs.com/OIerLYF/p/7050345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值