題目傳送門
思路:網路流拆點有的是「過程拆點」,有的是「狀態拆點」,這道題應該就屬於狀態拆點。
每個點分需要用的,用完的。
對於需要用的,這些毛巾來自新買的和用過的毛巾進行消毒的,流向終點。
對於用完的,來自源點,可以用於消毒,連向需要用的點,還有一些毛巾留到明天消毒(其實意思是,消完毒,延後使用,但是這樣建邊麻煩)。
挺不錯的題目吧。
乙個非常坑的地方就是,a和b可能大於1000,所以拆點的點的編號要很小心,要判斷一下是否越界。
推薦乙個部落格。大佬的部落格
#include#define clr(a,b) memset(a,b,sizeof(a))view codeusing
namespace
std;
typedef
long
long
ll;const
int maxn = 10010
;const
int maxm = 100010
;const
int inf = 0x3f3f3f3f
;struct
edge edge[maxm];
struct
pp
in[maxn];
inthead[maxn], tol;
intpre[maxn], dis[maxn];
intn,a,b,f,fa,fb;
int aa[2010
];bool
vis[maxn];
int n=maxn-2
;void
init()
void addv(int u, int v, int cap, int
cost)
bool spfa(int s, int
t) }}}
if (pre[t] == -1)return
false
;
else
return
true;}
//返回的是最大流,cost 存的是最小費用
int mincostmaxflow(int s, int t, int &cost)
for (int i = pre[t]; i != -1; i = pre[edge[i ^ 1
].to])
flow +=min;
}return
flow;
}int
main()
int s=0,p=1000,t=3010
;
for(int i=1;i<=n;i++)
intcost;
mincostmaxflow(s,t,cost);
printf(
"%d\n
",cost);
}
time limit: 10 sec memory limit: 162 mb
submit: 2103 solved: 1217
[submit][status][discuss]
某軟體公司正在規劃一項n天的軟體開發計畫,根據開發計畫第i天需要ni個軟體開發人員,為了提高軟體開發人員的效率,公司給軟體人員提供了很多的服務,其中一項服務就是要為每個開發人員每天提供一塊消毒毛巾,這種消毒毛巾使用一天後必須再做消毒處理後才能使用。消毒方式有兩種,a種方式的消毒需要a天時間,b種方式的消毒需要b天(b>a),a種消毒方式的費用為每塊毛巾fa, b種消毒方式的費用為每塊毛巾fb,而買一塊新毛巾的費用為f(新毛巾是已消毒的,當天可以使用);而且f>fa>fb。公司經理正在規劃在這n天中,每天買多少塊新毛巾、每天送多少塊毛巾進行a種消毒和每天送多少塊毛巾進行b種消毒。當然,公司經理希望費用最低。你的任務就是:為該軟體公司計畫每天買多少塊毛巾、每天多少塊毛巾進行a種消毒和多少毛巾進行b種消毒,使公司在這項n天的軟體開發中,提供毛巾服務的總費用最低。
第1行為n,a,b,f,fa,fb. 第2行為n1,n2,……,nn. (注:1≤f,fa,fb≤60,1≤n≤1000)
最少費用
4 1 2 3 2 1
8 2 1 6
38
BZOJ 1221 軟體開發 費用流
容易看出這是顯然的費用流模型。把每天需要的餐巾數作為限制。需要將天數拆點,x 表示每天需要的餐巾,x 表示每天用完的餐巾。所以加邊 s,x inf,0 x t,inf,0 餐巾可以新買。所以需要加邊 s,x inf,f 沒用完餐巾可以留到下一天,所以加邊 x x 1 inf,0 送往快洗店,加邊 x...
BZOJ1221 HNOI2001 軟體開發
某軟體公司正在規劃一項n天的軟體開發計畫,根據開發計畫第i天需要ni個軟體開發人員,為了提高軟體開發人員的效率,公司給軟體人員提供了很多的服務,其中一項服務就是要為每個開發人員每天提供一塊消毒毛巾,這種消毒毛巾使用一天後必須再做消毒處理後才能使用。消毒方式有兩種,a種方式的消毒需要a天時間,b種方式...
bzoj1221 HNOI2001 軟體開發
time limit 10 sec memory limit 162 mb submit 1351 solved 748 submit status discuss 某軟體公司正在規劃一項n天的軟體開發計畫,根據開發計畫第i天需要ni個軟體開發人員,為了提高軟體開發人員的效率,公司給軟體人員提供了很...