題意:有乙個照明系統需要用到n種燈,每種燈的電壓為v,電源費用k,每個燈泡費用為c,需要該燈的數量為l。注意到,電壓相同的燈泡只需要共享乙個對應的電源即可,還有電壓低的燈泡可以被電壓高的燈泡替代。為了節約成本,你將設計一種系統,使之最便宜。
分析:每種電壓的燈泡要麼全換,要麼都不換,不然兩種電源都不要。因為低電壓燈泡可以用較高的電源。按電壓從低到高排一遍。
設s[i] 前 i 種燈泡的總數量, d[i] 為燈泡1~i的最小開銷,d[i] = min(d[j]+(s[i]-s[j])*c[i]+k[i]),前 j 個先用最優方案,後面的 j+1~i都用第 i 號的電源。
#include#includeusing
namespace
std;
const
int maxn = 1000 + 5
;struct
lamp
} lamp[maxn];
intn, s[maxn], d[maxn];
intmain()
cout
<< d[n] << "\n"
; }
return0;
}
uva11400 照明系統設計
通過這個題目我以為我了發現資料結構課本快排 的乙個bug。書上的快排 template void quicksort t a,int leftend,int rightend while a leftcursor pivot dowhile a rightcursor pivot if leftcu...
UVa11400 照明系統設計
題目描述 設計某個地方的照明系統 一共需要n種不同型別的燈泡 接著輸入每種燈泡的電壓v 對應電壓電源的 k 每個燈泡的 c 需要這種燈泡的數量l 電壓低的燈泡可以用電壓高的燈泡替換 每種燈泡只需要乙個對應的電源 求完成這個照明系統的最少花費。輸入有多組資料。輸出最小花費。樣例輸入 100 500 1...
UVA11400 分析推理 dp
有n種燈泡,不同種類的燈泡需要同種電源,同種燈泡只需乙個電源。你現在要設計乙個照明系統,給出n種燈泡的電壓v,電源費用k,乙個燈泡的費用c和所需該種燈泡數量l,電壓小的燈泡可以被電壓大的燈泡代替,求最小花費。由人類的直覺,我們應該把燈泡按照電壓從大到小排序,以方便處理。推理1 一種燈泡要麼全部替換為...