申奧成功後,布布經過不懈努力,終於成為奧組委下屬公司人力資源部門的主管。布布剛上任就遇到了乙個難題:為即將啟動的奧運新專案招募一批短期志願者。經過估算,這個專案需要n 天才能完成,其中第i 天至少需要ai 個人。 布布通過了解得知,一共有m 類志願者可以招募。其中第i 類可以從第si 天工作到第ti 天,招募費用是每人ci 元。新官上任三把火,為了出色地完成自己的工作,布布希望用盡量少的費用招募足夠的志願者,但這並不是他的特長!於是布布找到了你,希望你幫他設計一種最優的招募方案。
寫的真好
建模很巧妙
#include
#include
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
template
<
class
t>
inline
void
read
(t &x)
const
int maxn =
650;
const
int maxm =
50000
;const
int inf =
1000000000
;int n, m;
int info[maxn]
, fir[maxn]
, to[maxm<<1]
, nxt[maxm<<1]
, c[maxm<<1]
, wt[maxm<<1]
, cnt =1;
inline
void
link
(int u,
int v,
int cc,
int ww)
int s, t;
ll dis[maxn]
, ans;
queue<
int>q;
bool vis[maxn]
, inq[maxn]
;bool
spfa()
}return dis[t]
< dis[0]
;}intaug
(int u,
int max)
vis[u]=1
;int flow =
0, delta;
for(
int v,
&i = info[u]
; i; i = nxt[i])if
(c[i]
&&!vis[v=to[i]
]&& dis[v]
== dis[u]
+ wt[i]
&&(delta=
aug(v,
min(max-flow, c[i]))
))vis[u]=0
;return flow;
}ll mincost
(int s,
int t)
int main (
)
NOI 2008 志願者招募(費用流)
題目描述 一共有n天,每天需要a i 個人,一共有m類志願者,每類有無限個,可以從s i 服務到t i 需要花費c i 的費用。問要滿足要求,最小的費用。題目分析 這題有乙個經典的也很奇妙的構圖法 利用不等式構圖 這個我不懂,想看的話請到byvoid神牛的blog裡面搜 我的想法很樸素,流的話就表示...
NOI2008 志願者招募(費用流)
很裸的費用流。建圖也很顯然。從源點向第一天連容量為inf infin f的邊,從第n 1 n 1n 1天向匯點連inf infin f的邊。然後從第i ii天向第i 1 i 1i 1天連容量為inf a i inf a i inf a i 的邊。現在的問題就是,我們需要花一定的代價對流量進行補償,對...
費用流 NOI2008志願者招募
time limit 20 sec memory limit 162 mb submit 5171 solved 3089 submit status discuss 申奧成功後,布布經過不懈努力,終於成為奧組委下屬公司人力資源部門的主管。布布剛上任就遇到了乙個難 題 為即將啟動的奧運新專案招募一批...