鬼谷子的錢袋(lgP2320)

2022-07-07 02:54:13 字數 528 閱讀 2245

主要思路:二進位制拆分。

先將 \(m\) 進行二進位制拆分。

注意金幣總數有限,也就是說拆分後可能會多出來一組。多出來的這組如果不是 \(2^n\) 就不需要考慮了,因為不會和前面的重複。

接下來考慮重複的情況,如 \(m=23\) ,可以拆為 \(1 2 4 8 8\) 。

於是我們直接把倆 \(8\) 變成 \(7\) 和 \(9\) 。

當我們需要用 \(8\) 時,直接用 \(7+1\) 。如果還需要 \(1\),就直接用 \(9\) 。故可以保證正確性。

**就很簡單了。

#includeusing namespace std;

int m,ans[101],k=1;

int main()

if(m) ans[++cnt]=m;

for(int i=1;isort(ans+1,ans+cnt+1);

cout

return 0;

}

洛谷2320鬼谷子的錢袋

2014年1月6日1,3210 description 鬼谷子非常聰明,正因為這樣,他非常繁忙,經常有各諸侯車的特派員前來向他諮詢時政。有一天,他在咸陽遊歷的時候,朋友告訴他在咸陽最大的拍賣行 聚寶商行 將要舉行一場拍賣會,其中有一件寶物引起了他極大的興趣,那就是無字天書。但是,他的行程安 排得很滿...

luogu2320 鬼谷子的錢袋

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

鬼谷子的錢袋

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