51Nod 1246 罐子和硬幣

2021-07-16 08:34:57 字數 1053 閱讀 1058

acm模版

這裡需要強調的是,分配是我們決定的,拿的方案也是我們決定的,所以,這裡預設是我們知道每個罐子可能擁有的硬幣個數。一開始沒有讀懂這層隱藏條件,所以自己想了半天也沒有想通樣例……

接著,我們需要考慮的是兩大種情況四小種情況:

第一:無抓空情況,結果一定是c次。

1、每個罐子的硬幣個數我們都知道(一定是每個罐子硬幣個數都是一樣的)。

2、分配方案最優時(盡量均分),硬幣個數最少的個數x*罐子數n大於等於要取的個數。

第二:有抓空情況,結果一定是兩種(c + yres)子情況中最優的一種。

3、根據盡量均分原則,我們可以分析到每個罐子要麼是x個,要麼是x+1個,如果此時x個的罐子小於x+1個的罐子數目,那麼結果一定是未抓空的c次加上最多抓空的次數y

4、但是當x個的罐子少於x+1個的罐子時,我們是否可以考慮,保證盡量多的罐子為x+1狀態,那麼最多抓空的次數z一定是未滿x+1個的罐子數,res一定是未抓空的次數c加上最多抓空的次數z

#include 

#include

#include

using

namespace

std;

int main(int argc, const

char * argv)

else

// (2)

}return

0;}

51nod 1246 罐子和硬幣

有n個罐子,有k個硬幣,每個罐子可以容納任意數量的硬幣。罐子是不透明的,你可以把這k個硬幣任意分配到罐子裡。然後罐子被打亂順序,你從外表無法區別罐子。最後罐子被編上號1 n。每次你可以詢問某個罐子,如果該罐子裡有硬幣,則你可以得到1個 但你不知道該罐子中還有多少硬幣 如果該罐子是空的,你得不到任何硬...

51nod1246 罐子和硬幣

有n個罐子,有k個硬幣,每個罐子可以容納任意數量的硬幣。罐子是不透明的,你可以把這k個硬幣任意分配到罐子裡。然後罐子被打亂順序,你從外表無法區別罐子。最後罐子被編上號1 n。每次你可以詢問某個罐子,如果該罐子裡有硬幣,則你可以得到1個 但你不知道該罐子中還有多少硬幣 如果該罐子是空的,你得不到任何硬...

51nod1246罐子與硬幣

1246 罐子和硬幣 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有n個罐子,有k個硬幣,每個罐子可以容納任意數量的硬幣。罐子是不透明的,你可以把這k個硬幣任意分配到罐子裡。然後罐子被打亂順序,你從外表無法區別罐子。最後罐子被編上號1 n。每次你可以詢問某個罐...