b462: 開卡包
標籤 :
通過比率 : 3人/3人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2026-02-28 12:33

內容

nowob今天中了樂透,突然有錢的他在超盤的地下街買了 $N$ 盒寶可夢卡牌。第 $i$ 盒寶可夢卡牌裡面有 $P_i$ 包卡包。

nowob打算回家開心地開卡包,他總共有 $H$ 小時的空閒時間,他希望能在 $H$ 小時內把所有卡包開完。

nowob可以決定一個開卡包的速度 $S$(代表每小時最多開 $S$ 包卡包)。

開卡包的規則如下:

1. 每小時他只能選擇一盒卡包來開,最多開 $S$ 包。

2. 如果這盒卡包剩下的數量少於 $S$ 包,他會把這盒開完,但這小時剩下的時間不能去開別盒卡包只能休息。

3. 也就是說,開完第 $i$ 盒卡包需要花費 $\lceil P_i / S \rceil$ 小時(無條件進位)。

因為開太快會折到卡片不好看,nowob希望他的開卡包速度 $S$ 能夠越慢越好。

請幫nowob計算出,若要在 $H$ 小時以內開完所有卡包,他最小的開卡包速度 $S$ 是多少?

輸入說明

第一行包含一個正整數 $T$ ($1 \le T \le 10$),代表測試資料筆數。
每筆測資第一行包含兩個整數 $N, H$ ($1 \le N \le 10^5, N \le H \le 10^{14}$),代表卡牌盒數與擁有的總小時數。(保證 $H \ge N$)。
第二行包含 $N$ 個整數 $P_i$ ($1 \le P_i \le 10^9$),代表每盒裡面卡包的數量。

輸出說明

對每筆測資,輸出一行一個整數,代表最小的開卡包速度 $S$。

範例輸入
2
4 8
3 6 7 11
5 5
30 11 23 4 20
範例輸出
4
30
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (30%): 1.0s , <1M
公開 測資點#1 (70%): 1.0s , <10M
提示 :

$\mathbf{30}$%: $\sum N \le 2000, P_i \le 1000$。

$\mathbf{70}$%: 無特別限制。

範例說明:

第一筆測資:時間限制為 8 小時。若速度 $S = 4$,開完四盒分別需要 $\lceil 3/4 \rceil=1$, $\lceil 6/4 \rceil=2$, $\lceil 7/4 \rceil=2$, $\lceil 11/4 \rceil=3$ 小時。總共花費 $1+2+2+3=8$ 小時,剛好能在規定時間內開完。

第二筆測資:時間限制為 5 小時。因為有 5 盒卡牌,每盒至少需要 1 小時來開,這代表每一盒都必須在 1 小時內開完。所以速度必須能夠一次開完數量最多的一盒,即合法速度為 30。

標籤:
出處:
[管理者:
louishuang (nowob)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」