time limit: 20 sec memory limit: 162 mb
submit: 2547 solved: 1600
[submit][status][discuss]
申奧成功後,布布經過不懈努力,終於成為奧組委下屬公司人力資源部門的主管。布布剛上任就遇到了乙個難題:為即將啟動的奧運新專案招募一批短期志願者。經過估算,這個專案需要n 天才能完成,其中第i 天至少需要ai 個人。 布布通過了解得知,一共有m 類志願者可以招募。其中第i 類可以從第si 天工作到第ti 天,招募費用是每人ci 元。新官上任三把火,為了出色地完成自己的工作,布布希望用盡量少的費用招募足夠的志願者,但這並不是他的特長!於是布布找到了你,希望你幫他設計一種最優的招募方案。
第一行包含兩個整數n, m,表示完成專案的天數和可以招募的志願者的種類。 接下來的一行中包含n 個非負整數,表示每天至少需要的志願者人數。 接下來的m 行中每行包含三個整數si, ti, ci,含義如上文所述。為了方便起見,我們可以認為每類志願者的數量都是無限多的。
僅包含乙個整數,表示你所設計的最優方案的總費用。
3 32 3 4
1 2 2
2 3 5
3 3 2
14招募第一類志願者3名,第三類志願者4名 30%的資料中,1 ≤ n, m ≤ 10,1 ≤ ai ≤ 10; 100%的資料中,1 ≤ n ≤ 1000,1 ≤ m ≤ 10000,題目中其他所涉及的資料均 不超過2^31-1。
題解:網路流畢業題的難度啊。。。讓我跟所有題解一樣指向這裡
啦,膜byvoid神犇。。。
具體**實現的時候動一下腦筋,觀察一下就好咯。
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8#define pau putchar(' ')
9#define ent putchar('\n')
10#define mse(a,b) memset(a,b,sizeof(a))
11#define ren(x) for(ted*e=fch[x];e;e=e->nxt)
12#define til(x) for(int i=1;i<=x;i++)
13using
namespace
std;
14const
int maxn=1000+10,maxm=400000+10,inf=1e9;
15struct
zkwadj[maxm],*fch[maxn],*ms;
17int n,s,t,d[maxn],cost,ans;bool
inq[maxn],vis[maxn];
18void init(int n)
19void add(int x,int y,int w,int
c);fch[x]=ms++;
21 *ms=(ted);fch[y]=ms++;
22return;23
}24bool
bfs()31}
32 }for(ted*e=adj;e!=ms;e++)e->c+=d[e->y]-d[e->x];cost+=d[s];return d[s]!=inf;33}
34int dfs(int x,int
delta)
39 }return
flow;40}
41int mcmf(int s,int
t)44
}sol;
45 inline int
read()
50 inline void write(int
x)if(x<0)putchar('
-'),x=-x;
52int len=0;static
int buf[20];while(x)buf[len++]=x%10,x/=10;53
for(int i=len-1;i>=0;i--)putchar(buf[i]+'
0');return;54
}55intn,m,need[maxn],s,t;
56int
main()write(sol.mcmf(s,t));
66return0;
67 }
bzoj1061 Noi2008 志願者招募
跟上一道基本相同,可以單純形法解線性規劃,也可以費用流.寫費用流的話建圖就是一般的線性規劃轉費用流的套路,加上基變數,然後化成等式,每個下式減上式之後可以化成表示流量平衡的等式,然後根據等式建圖就好了,跑乙個最小費用最大流.寫單純形沒有寫網路流好理解,單純形的話因為這是最小化費用的,首先要轉化成對偶...
BZOJ1061 NOI2008 志願者招募
bzoj 我們設每類志願者分別招募了b i b i 個 那麼,我們可以得到一系列的方程 s i x t i b i a x s i x t i b i a x 一共n n 天,所以是 n role presentation n n個方程 因為有不等式讓我們很不爽,所以換成等式。這裡,設y i y i...
bzoj 1061 Noi2008 志願者招募
題目大意 專案需要n 天才能完成,其中第i 天至少需要ai 個人。布布通過了解得知,一共有m 類志願者可以招募。其中第i 類可以從第si 天工作到第ti 天,招募費用是每人ci 元。新官上任三把火,為了出色地完成自己的工作,布布希望用盡量少的費用招募足夠的志願者 題解 include include...