申奧成功後,布布經過不懈努力,終於成為奧組委下屬公司人力資源部門的主管。布布剛上任就遇到了乙個難題:為即將啟動的奧運新專案招募一批短期志願者。經過估算,這個專案需要n 天才能完成,其中第i 天至少需要ai 個人。
布布通過了解得知,一共有m 類志願者可以招募。其中第i 類可以從第si 天工作到第ti 天,招募費用是每人ci
元。新官上任三把火,為了出色地完成自己的工作,布布希望用盡量少的費用招募足夠的志願者,但這並不是他的特長!於是布布找到了你,希望你幫他設計一種最
優的招募方案。
第一行包含兩個整數n, m,表示完成專案的天數和可以招募的志願者的種類。
接下來的一行中包含n 個非負整數,表示每天至少需要的志願者人數。
接下來的m 行中每行包含三個整數si, ti, ci,含義如上文所述。為了方便起見,我們可以認為每類志願者的數量都是無限多的。
包含乙個整數,表示你所設計的最優方案的總費用。
3 3
2 3 4
1 2 2
2 3 5
3 3 2
【樣例說明】
招募3 名第一類志願者和4 名第三類志願者。
【資料規模和約定】
30%的資料中,1 ≤ n, m ≤ 10,1 ≤ ai ≤ 10;
100%的資料中,1 ≤ n ≤ 1000,1 ≤ m ≤ 10000,題目中其他所涉及的資料均不超過2^31-1。
noi,數學 ,網路流 ,線性規劃
這是由等式 - >網路流的乙個建模轉化.根據提議列出若干個等式(或者是不等式,新增乙個輔助變數變成等式),如果發現滿足每個變數以正的負的形式都恰出現一次,即對於每條邊(u,v)若為xi,xi會在u的流量平衡條件式子(約束)中以正的形式出現一次,在v的流量平衡條件式子中以負的形式出現一次,這經常是網路流的流量平衡條件,可用網路流來做.
參考部落格:
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11 #include12 #include13 #include14
#define ll long long
15#define rep(i,a,b) for(register int i=a;i<=b;i++)
16#define inf 1<<30
17#define il inline
18#define re register
19using
namespace
std;
20const
int n=1000+100,m=4*n*10;21
struct
edge
25 edge(int u,int v,int c,int f,int
w) : fr(u),to(v),cap(c),flow(f),cost(w) {}
26 }e[m*2
];27
inthead[n],num_e,n,m,s,t;
28int
d[n],a[n],p[n];
29bool
inq[n];
30int
demond[n];
31 il int
gi()
38void add(int u,int v,int c,int f,int
w) 44
bool spfa(int &cost) 60}
61}62if(d[t]==inf) return0;
63 cost += d[t] *a[t];
64for(re int u=t;u!=s;u=e[p[u]].fr)
68return1;
69}70int
mincostmaxflow()
75int
main() n
83 s=0,t=n+2
;84 rep(i,1,n+1
) 90
91 printf("%d"
,mincostmaxflow());
92return0;
93 }
NOI 2008 志願者招募
考慮用 p i 表示第 i 天實際招收的人數,我們假設我們有三種志願者,分別是 1 to 2,1 to 3 2 to 3 我們招手的人數分別是 b 1,b 2,b 3 那麼第一天實際人數就是 p 1 b 1 b 2 geq a 1 同理我們把三個不等式寫出來 b 1 b 2 ge a 1 b 1 b...
NOI2008 志願者招募
oj題號 bzoj1061 題目大意 有 n 個任務,m 個志願者,完成每個任務 i 至少需要 a i 個人,每個人只有在 s i 到 t i 的時候有空,並需要被支付 c i 的報酬,求完成所有任務的最小支出。思路 先挖空後補空 將每個時間抽象成點,並在時間軸的兩端增加源匯 s 和 t 每個相鄰的...
noi2008 志願者招募
題目大意 乙個專案需要n天才能完成,其中第i天需要ai個人,共有m類志願者可以招募,每種都有固定的工作時間和招募費用。找出一種最優的招募方案。分析 其實這題很明顯網路流,不過建圖真的很麻煩很麻煩,要用到等式轉換什麼的,我就不獻醜了,題解見 noi要是真出個讓你看出來是網路流的題,估計是沒幾個人能構出...