poj2584T Shirt 網路最大流

2022-05-12 13:15:08 字數 1337 閱讀 6479

題目:

以人和衣服作為點,建立超級源點和超級匯點,人連邊權為1的邊,衣服對源點連邊權為件數的邊(別弄亂順序);

試圖寫建構函式,但ce了,最後只好用冗雜的寫法。

**如下:

#include#include

#include

#include

using

namespace

std;

queue

q;int n,head[30],ct=1,d[30],cur[30],inf=1e9,s,t;

char dc[105

];struct

nedge[

705];

//struct n

//}edge[255];

int ex(char

cc)void ad(int x,int y,int

z);head[x]=ct;

//edge[++ct]=(n);head[y]=ct;

edge[++ct].to=y;

edge[ct].next=head[x];

edge[ct].w=z;

head[x]=ct;

edge[++ct].to=x;

edge[ct].next=head[y];

edge[ct].w=0

; head[y]=ct;

//edge[++ct]=n;head[x]=ct;

//edge[++ct]=n;head[y]=ct;

}void add(int p,char

c)bool

bfs()}}

return

d[t];

}int dfs(int x,int

f) }

if(!res)d[x]=0;//

剪枝 return

res;

}bool

dinic()

if(ret==n)return1;

else

return0;

}int

main()

for(int i=n+1;i<=n+5;i++)

for(int i=1;i<=n;i++)ad(i,n+6,1);//

n+6為超級匯點

s=0;t=n+6

; cin>>dc;

if(dinic())printf("

t-shirts rock!\n");

else printf("

i'd rather not wear a shirt anyway...\n");

}return0;

}

POJ 1273 模板網路流

drainage ditches 標準的是edmonds karp 最短增廣路演算法 網路流講解 include include include include include includeusing namespace std define rep i,a,b for int i a i b i...

poj 3469 dinic網路流模板

題意 要在由核a和核b組成的雙核cpu上執行n個模組。模組i在核a上執行的花費為ai,在核b上執行的花費為bi。有m個相互之間需要進行資料交換的模組組合 ai,bi 如果這倆模組在同一核上執行則沒有花費。否則會產生wi的花費。計算執行所有模組所需的最小花費。解析 用最小的費用將物件花費成兩個集合的問...

No 25 POJ3308 實數網路流

構造圖是關鍵 乙個兵有兩種耗費模式,要麼ri開銷,要麼cj開銷 自然想到源點到中間節點為ri開銷,中間節點到匯點為cj開銷,求最小割。兵的關係如何表示?傘兵沒有帶權值,所以只表示一種行和列的關聯關係,所以想到中間節點分為ri和cj,每個傘兵鏈結ri和cj,正向邊費用為inf,反向邊費用為0。關 於反...