acm模版
這裡需要強調的是,分配是我們決定的,拿的方案也是我們決定的,所以,這裡預設是我們知道每個罐子可能擁有的硬幣個數。一開始沒有讀懂這層隱藏條件,所以自己想了半天也沒有想通樣例……
接著,我們需要考慮的是兩大種情況四小種情況:
第一:無抓空情況,結果一定是c
次。
1、每個罐子的硬幣個數我們都知道(一定是每個罐子硬幣個數都是一樣的)。
2、分配方案最優時(盡量均分),硬幣個數最少的個數x
*罐子數n
大於等於要取的個數。
第二:有抓空情況,結果一定是兩種(c + y
、res
)子情況中最優的一種。
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。每次你可以詢問某個罐...