C - Alice and the Cake
队列/优先队列
-
记录每个重量的蛋糕个数
-
求出蛋糕的重量之和,看这个重量能否切出这些蛋糕
-
把总和放入队列,如果当前这个重量还有蛋糕,那就不切这个,如果没有就继续切
但是这样广搜,很多重量其实是切不出来的,但要一直切到 1 才能判断出来,所以效率很低
因为最多切 \(n-1\) 次,所以每切一次就记录下来,切够 \(n - 1\) 次就不切了
如果用优先队列,维护一个小根堆,小重量很快就可以判断出能不能切出,这样效率也很高
#include
#include
#include
#include
#include
#include