2019牛客暑期多校訓練營(第六場)D Move

2022-05-02 20:33:09 字數 939 閱讀 3954

>傳送門<

題意:

你有n件行李,有k個箱子體積相同的箱子,

遵循下面的規則將行李放進箱子裡面

每次都取當前最大的可以放進箱子的行李放進箱子,如果該箱子放不進任何行李那麼就換乙個新的箱子再按照這一條規則進行放行李

請問箱子最小的體積是多少可以放進所有行李

思路:

還是菜雞的我比賽的時候沒有思路,也木有想法,賽後再看題解給出的竟然是暴力列舉!!!

下面官方題解就分析的挺好的

• 考慮到答案下界顯然為 ceil(sum / k)

• 上界為 ceil(sum / k) + maxv

• check 乙個答案的複雜度為 o(nlogn)

• 所以我們直接在這個範圍內列舉答案,複雜度為 o(maxv * nlogn)

code

#include using

namespace

std;

const

int maxn = 1000 + 7

;int

v[maxn], n, k, used[maxn];

bool check(int

x) }

}for(int i = 1; i <= n; i++) if(!used[i]) return

false

;

return

true;}

intmain()

}printf(

"case #%d: %d\n

", cas, ans);

}return0;

}

view code

2019牛客暑期多校訓練營(第六場)

rank solvedab cdef ghij 332 820 3 10o o o o 當場通過 賽後通過 尚未通過 solved by viscaria viscaria s solution upsolved by feynman1999 feynman1999 s solution upsol...

2019牛客暑期多校訓練營(第六場)D Move

題目大意 n個物品及其體積,用k個相同的箱子裝,求能裝下這n個物品的箱子的最小容積。對於乙個箱子,每次都先裝能裝下的最大的物品,不能滿足則開始裝下乙個箱子。思路 ans max vol i ceil sum vol i k while ans 直到能裝下所有物品。1 include2 using n...

牛客暑期多校訓練營B Boundary

給定n個點,然後確定乙個過原點的圓,要使這n個點盡可能多的存在與圓上,最後輸出最多的存在於圓上的點的個數 三點確定乙個圓,我們已知這個圓必定經過原點,所以再依次利用三點求圓心的公式列舉每兩個點與原點 三點不共線 確定的圓心,最後選擇確定次數最多的圓心構成的圓 include include incl...