有m個實驗,n個器材,每個實驗做完會得到一些錢,每個實驗需要一些器械才能完成,買器材會花錢,器材可以一起用,求最大利益。
n,m<=50
直接寫做法了,沒做過就想不出來。
源點向實驗連邊,流量為實驗所得的錢,器材想匯點連邊,流量為器材花費,實驗與相應的器材連邊,流量inf。
先假設沒花錢做了所有實驗得到了所有錢ans(不要face)。
求一遍最小割即可,ans-最小割就是答案。
割掉實驗的連邊就是不做這個實驗,割掉器材的連邊就是買這個器材。
輸出方案就輸出與s連通的即可。(為啥我也不知道)
#includeusingview codenamespace
std;
const
int maxn=105
;const
int maxm=2705
;const
int inf=1000005
;int
n,m,s,t,ans;
intval[maxn];
bool flag,get
[maxn];
int cnt=1
,head[maxn];
struct
edgee[maxm
<<1
];void add(int x,int y,int
val);
head[x]=cnt;
}template
inline void read(t &x)
flag|=(ch=='\n'
);}intd[maxn];
bool
bfs()
}}
return
false;}
int dfs(int x,int
flow)
} return flow-rest;
}int
dinic()
intmain()
} for(int i=1;i<=n;i++)
ans-=dinic();
for(int i=1;i<=m;i++) if(d[i]) printf("
%d "
,i);
putchar(
10);
for(int i=m+1;i<=n+m;i++) if(d[i]) printf("
%d ",i-m);
putchar(
10);
printf("%d
",ans);
}
網路流24題 太空飛行計畫問題
網路流24題大多需要spj,所以需要乙個有spj的oj,本系列 均在www.oj.swust.edu.cn測試通過 最大權閉合子圖裸題,先將所有收益加起來,源點向每個方案連線一條收益的流,每個方案向對應需要的儀器連一條inf,每個儀器向匯點連一條花費的流。輸出方案只需要在最後的阻塞流中看還剩哪幾個點...
網路流24題 太空飛行計畫問題
已確定了乙個可供選擇的實驗集合e 和實驗需要使用的全部儀器的集合i 實驗ej需要用到的儀器是i的子集rj i。配置儀器ik的費用為ck美元。實驗ej的贊助商已同意為該實驗結果支付pj美元。w教授的任務是找出乙個有效演算法,確定在一次太空飛行中要進行哪些實驗並因此而配置哪些儀器才能使太空飛行的淨收益最...
太空飛行計畫問題 網路流24題
w 教授正在為國家航天中心計畫一系列的太空飛行。每次太空飛行可進行一系列商業性實驗而獲取利潤。現已確定了乙個可供選擇的實驗集合e 和進行這些實驗需要使用的全部儀器的集合i 實驗ej需要用到的儀器是i的子集rj i。配置儀器ik的費用為ck美元。實驗ej的贊助商已同意為該實驗結果支付pj美元。w教授的...