2023年noi全國競賽
時間限制: 2 s
空間限制: 128000 kb
題目等級 : 大師 master
申奧成功後,布布經過不懈努力,終於成為奧組委下屬公司人力資源部門的 主管。布布剛上任就遇到了乙個難題:為即將啟動的奧運新專案招募一批短期志 願者。經過估算,這個專案需要 n 天才能完成,其中第 i 天至少需要 ai個人。 布布通過了解得知,一共有 m 類志願者可以招募。其中第 i 類可以從第 si天工 作到第 ti 天,招募費用是每人 ci元。新官上任三把火,為了出色地完成自己的 工作,布布希望用盡量少的費用招募足夠的志願者,但這並不是他的特長!於是 布布找到了你,希望你幫他設計一種最優的招募方案。
輸入描述 input description
輸入檔案 employee.in 的第一行包含兩個整數 n, m,表示完成專案的天數和 可以招募的志願者的種類。 接下來的一行中包含 n 個非負整數,表示每天至少需要的志願者人數。 接下來的 m 行中每行包含三個整數 si, ti, ci,含義如上文所述。為了方便起 見,我們可以認為每類志願者的數量都是無限多的。
輸出描述 output description
輸入檔案 employee.out 中僅包含乙個整數,表示你所設計的最優方案的總費用。
樣例輸入 sample input
3 32 3 4
1 2 2
2 3 5
3 3 2
樣例輸出 sample output
14 資料範圍及提示 data size & hint
【樣例說明】
招募 3 名第一類志願者和 4 名第三類志願者。
30%的資料中,1 ≤ n, m ≤ 10,1 ≤ ai ≤ 10;
100%的資料中,1 ≤ n ≤ 1000,1 ≤ m ≤ 10000,題目中其他所涉及的資料均不超過 231-1。
解題:上下界費用流。
建圖,第i天向第i+1天建立下界為第i天需要的人數的邊,對於人的種類,可以連線ti+1 到 si 費用為ti,流量為無限的邊。然後就是類似於上下界流那樣,建圖。建圖後求最小費用流。注意由於i到i+1的邊表示第i天至少得招募人數,所有就會有n+1個點。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #includeview code11 #include
12 #include 13
#define ll long long
14#define pii pair15
#define inf 0x3f3f3f3f3f3f3f3fll
16using
namespace
std;
17const
int maxn = 100010;18
struct
arc27
};28 arc e[maxn*10
];29
inthead[maxn],p[maxn],s,t,tot,n,m;
30 ll d[maxn],in
[maxn];
31bool
vis[maxn];
32void add(int u,int
v,ll flow,ll cost)
38bool
spfa()
45 d[s] = 0;46
q.push(s);
47while(!q.empty())59}
60}61}
62return p[t] > -1;63
}64ll solve()75}
76return
ans;77}
78int
main()
92for(int i = 0; i < m; ++i)
96for(int i = 1; i <= n + 1; ++i)
97if(in[i] < 0) add(i,t,-in[i],0
);98
else
if(in[i] > 0) add(s,i,in[i],0
);99 printf("
%lld
",solve());
100}
101return0;
102 }
bzoj 1061 志願者招募
明顯的線性規劃網路流,據說當時考場上就1個人a了?a i j 表示第i種志願者第j天是否工作 p i 表示第i種志願者的人數 sigma a i x p i need x 補充函式y i 則sigma a i x p i need x y x 差分,start i 表示第i種志願者開始工作的時間,e...
BZOJ 1061, 志願者招募
傳送門 最小化招聘給定不同型別志願者,以滿足每日不同人數要求的費用總和。由線性規劃轉化為最小費用最大流來處理。一般按如下步驟進行操作 新增鬆弛變數,將不等號都變為等號。分別用下乙個式子減去上乙個式子,如果每個變數只出現了兩次且符號一正一負,那麼可以轉化為費用流。對於每個式子建立乙個點,那麼每個變數對...
bzoj1061 志願者招募
題意 給m類志願者,第i個志願者從第 l i 天工作到第 r i 天,費用為c i 每種志願者可以選擇無限多人。每一天都有給定的最少志願者數目要求a i 求費用最小的選擇方案,輸出費用。思路 明顯是一道線性規劃可以解決的問題,但我不會寫單純型。聽溪哥說線性規劃都有網路流的等價形式,不過我在網上沒有找...