給出n
nn個木板,要從這些木板中分出k
kk個木料
二分+搜尋+剪枝即可
預處理:將木板和木料都從小到大排序
二分列舉分出前mid
midmi
d個木料,是否可以分出
搜尋判斷是否可以分出
剪枝:
1、w
ww為浪費,tot
totto
t為總長度,對於一塊木材,將其切斷一部分滿足一些木板後,倘若剩餘部分連最短的木板都無法滿足,那麼剩餘部分一定不能滿足任何木板,就屬於浪費的部分。若木材有用的部分(總數-浪費)不能滿足前mid
midmi
d個木板,那麼當前二分的答案不可行
2、由於是遞增的,在dfs
dfsdf
s過程中,可能會遇到這麼一種情況,第i
ii個木板與第i−1
i-1i−
1個木板的長度相同,那麼考慮,若不能滿足第i−1
i-1i−
1木板,那麼一定不能滿足第i
ii個木板
#include#includeusing namespace std;
int n,r,tot,w,mid,ans;
int a[2005],b[2005],sum[2005];
bool check(int x,int last)
printf("%d",ans);
}
東莞市2023年特長生 T4 擺渡線路
某市的m mm公園中有乙個近乎圓形的湖,有100 10010 0個主要景點分布在湖邊,為了方便遊客,公園在一些景點之間開設了直通的摩托飛艇擺渡的專案一來減少遊客在景點到景點之間所花的時間,二來也可以讓遊客體驗一下驚險刺激的摩托飛艇。果然摩托飛艇擺渡專案大為成功,為了充分滿足遊客需要,擺渡線路越來越多...
東莞市2023年特長生 T2 農場主
把n nn隻馬分配到k kk個馬房裡,並且按照順序放。對於每乙個馬房都有乙個叫做 不高興係數 即白色馬的數量 黑色馬的數量。任務是合理地分配這n nn隻馬,使得它所有馬房的 不高興係數 和最小。d pdp dp,設f i j f i j f i j 表示用i ii個馬房裝j jj匹馬的最小不高興係數...
東莞市2023年特長生 T3 工程
一天公司接下一項大型工程,該公司在大型工程的施工前,先要把整個工程劃分為若干個子工程,並把這些子工程編號為1 2 n 1 2 n 1 2 n 這樣劃分之後,子工程之間就會有一些依賴關係,即一些子工程必須在某些子工程完成之後才能施工,公司需要工程師張三計算整個工程最少的完成時間。對於上面問題,可以假設...