洛谷2320鬼谷子的錢袋

2021-07-24 07:34:14 字數 795 閱讀 8932

2023年1月6日1,3210

description

鬼谷子非常聰明,正因為這樣,他非常繁忙,經常有各諸侯車的特派員前來向他諮詢時政。有一天,他在咸陽遊歷的時候,朋友告訴他在咸陽最大的拍賣行(聚寶商行)將要舉行一場拍賣會,其中有一件寶物引起了他極大的興趣,那就是無字天書。但是,他的行程安 排得很滿,他他已經買好了去邯鄲的長途馬車標,不巧的是出發時間是在拍賣會快要結束的時候。於是,他決定事先做好準備,將自己的金幣數好並用乙個個的小錢袋裝好,以便在他現有金幣的支付能力下,任何數目的金幣他都能用這些封閉好的小錢的組合來付賬。鬼谷子也是乙個非常節儉的人,他想方設法使自己在滿足上述要求的前提下,所用的錢袋數最少,並且不有兩個錢袋裝有相同的大於1的金幣數。假設他有m個金幣,你能猜到他會用多少個錢袋,並且每個錢袋裝多少個金幣嗎?

input

包含乙個整數,表示鬼谷子現有的總的金幣數目m。其中,1≤m ≤1000000000。

output

乙個整數h,表示所用錢袋個數

接著是具體方案.

sample input

3sample output

2錢袋個數是非常容易想到的, 即取最小的2 ^ n >= h

具體方案詳見**

(我也不知道具體為什麼是這樣做. 可以通過樣例試驗 + 遞迴思想輔助理解)

#include

#include

using

namespace

std;

int a[100000];

int main()

luogu2320 鬼谷子的錢袋

鬼谷子決定將自己的金幣數好並用乙個個的小錢袋裝好,以便在他現有金幣的支付能力下,任何數目的金幣他都能用這些封閉好的小錢的組合來付賬。求錢袋數最少,並且不有兩個錢袋裝有相同的大於1的金幣數的裝錢袋方法。做了這道題相當於長了一點經驗。我們的結論是 lceil frac rceil 和能湊成 1,lflo...

鬼谷子的錢袋(lgP2320)

主要思路 二進位制拆分。先將 m 進行二進位制拆分。注意金幣總數有限,也就是說拆分後可能會多出來一組。多出來的這組如果不是 2 n 就不需要考慮了,因為不會和前面的重複。接下來考慮重複的情況,如 m 23 可以拆為 1 2 4 8 8 於是我們直接把倆 8 變成 7 和 9 當我們需要用 8 時,直...

鬼谷子的錢袋

題目描述 鬼谷子非常聰明,正因為這樣,他非常繁忙,經常有各諸侯車的特派員前來向他諮詢時政。有一天,他在咸陽遊歷的時候,朋友告訴他在咸陽最大的拍賣行 聚寶商行 將要舉行一場拍賣會,其中有一件寶物引起了他極大的興趣,那就是無字天書。但是,他的行程安排得很滿,他已經買好了去邯鄲的長途馬車票,不巧的是出發時...