bzoj1391: [Ceoi2008]order(最小割)
題目傳送門
。
解法:
裸的最小割吧。
st連任務流量為收益。
任務連機器流量為租金
機器連ed流量為花費。
這樣的話一條路徑的流量可以看作把某部分割掉。
跟最大獲利同理。。
聽說要用什麼弧優化。。
去看hzwer部落格?
程式碼實現:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
struct node {int x,y,next,other,c;}a[3100000];int len,last[3100];
void ins(int x,int y,int c) {
int k1,k2;
len++;k1=len;a[len].x=x;a[len].y=y;a[len].c=c;a[len].next=last[x];last[x]=len;
len++;k2=len;a[len].x=y;a[len].y=x;a[len].c=0;a[len].next=last[y];last[y]=len;
a[k1].other=k2;a[k2].other=k1;
}
int head,tail,list[3100],st,ed,h[3100];
bool bt_h() {
head=1;tail=2;list[1]=st;memset(h,0,sizeof(h));h[st]=1;
while(head!=tail) {
int x=list[head];
for(int k=last[x];k;k=a[k].next) {
int y=a[k].y;
if(h[y]==0&&a[k].c>0) {h[y]=h[x]+1;list[tail++]=y;}
}head++;
}if(h[ed]==0)return false;return true;
}
int cur[3100];
int find_flow(int x,int f) {
if(x==ed)return f;
int s=0,t;
for(int k=cur[x];k;k=a[k].next) {
int y=a[k].y;
if(h[y]==h[x]+1&&a[k].c>0&&s<f) {
t=find_flow(y,min(a[k].c,f-s));s+=t;a[k].c-=t;a[a[k].other].c+=t;
if(a[k].c>0) cur[x]=k;if(s==f)break;
}
}if(s==0)h[x]=0;return s;
}
int main() {
int n,m,sum=0;scanf("%d%d",&n,&m);st=n+m+1;ed=st+1;
len=0;memset(last,0,sizeof(last));
for(int i=1;i<=n;i++) {
int c,k;scanf("%d%d",&c,&k);ins(st,i,c);sum+=c;
for(int j=1;j<=k;j++) {int x;scanf("%d%d",&x,&c);ins(i,x+n,c);}
}
for(int i=1;i<=m;i++) {int x;scanf("%d",&x);ins(i+n,ed,x);}
int ans=0;
while(bt_h()==true) {
for(int i=1;i<=ed;i++)cur[i]=last[i];
ans+=find_flow(st,999999999);
}printf("%d\n",sum-ans);
return 0;
}
相關文章
- 最大流最小割
- 網路流-最小割
- bzoj4808: 馬(最小割)
- bzoj3275: Number(最小割)
- 網路流(最大流,最小割)
- 偷寶石(最大流轉化最小割)
- 1.1.3.3 最小割之最小權覆蓋集、最大權獨立集
- SPOJ - OPTM Optimal Marks(進位制拆分+最小割)
- 網路流最大流、最小割學習筆記筆記
- bzoj3175: [Tjoi2013]攻擊裝置(最小割)
- 論文導讀 | 最小屬性割RDF資料劃分
- 【BZOJ-1565】植物大戰殭屍 拓撲排序 + 最小割排序
- P2057 [SHOI2007]善意的投票 / [JLOI2010]冠軍調查( 最小割 )
- P3388 【模板】割點(割頂)
- 無向圖最小割問題取得新突破,谷歌研究獲SODA 2024最佳論文獎谷歌
- 洛谷 P3388 【模板】割點(割頂)
- CSS orderCSS
- Day7 割點、割邊和強連通分量
- Order by 優化優化
- order by與索引索引
- 嗅探器(割點)
- [Javascript] Object property orderJavaScriptObject
- MySQL 之 ORDER BY FIELDMySql
- mysql order by 優化MySql優化
- CSS3 orderCSSS3
- MySql ORDER BY索引是否失效MySql索引
- MySQL, Incorrect usage of UNION and ORDER BYMySql
- [LintCode] Binary Tree Level Order
- MyBatis order by失效問題MyBatis
- order by改分組排序排序
- MySQL Order BY 排序過程MySql排序
- 【筆記/模板】割點和橋筆記
- How to get propose products in Sales Order
- 如何使用使用 HAVING 與 ORDER BY?
- Binary Tree Level Order Traversal [LEETCODE]LeetCode
- SAP MM Purchase Order History CategoryGo
- MySQL 5.7:desc order by反向定位MySql
- MySQL——優化ORDER BY語句MySql優化