POJ 2125 網路流拆點最小點權覆蓋

2021-07-02 13:58:43 字數 1220 閱讀 9172

//destroying the graph poj 2125

//目前想法是拆點加最小點權覆蓋

//這道題的特殊點在於他還要尋找最小點權覆蓋選擇的是:1-n取s能遍歷到的點,n+1-2*n取s遍歷不到的點

//那個求割點的重點在於一定要用visit,別用vis,重名了

//題意就是 有乙個圖, 兩種操作,一種是刪除某點的所有出邊,一種是刪除某點的所有入邊,各個點的不同操作分別有乙個花費,

//現在我們想把這個圖的邊都刪除掉,需要的最小花費是多少

//還要輸出選擇的點

#include#include#include#include#include#include#include#define maxn 1050

#define inf 0x3f3f3f3f

#define inf 0x3f3f3f3f

using namespace std;

int n,m;

bool visit[maxn*2];

int wz[maxn],wf[maxn];

int s,dest;

int res[maxn];

bool index[maxn];

///注意有向邊還是無向邊

struct dinic

; vectoredges;

vectormapt[maxn];

void addedge(int from,int to,int cap));

edges.push_back((edge));

edgenum = edges.size();

mapt[from].push_back(edgenum-2);

mapt[to].push_back(edgenum-1);

}bool bfs()}}

return vis[sink];

}int dfs(int x,int a)

}return flow;

}int maxflow(int source,int sink)

return flow;

}void dfsans(int x)}}

};int main()

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

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

cout}

cout

}}

poj 2125 最小點權覆蓋

題意描述 給你一張有向圖,每個點有兩個權值 w w w 表示刪掉該點的所有入邊所需要的花費,w 表示刪掉該點的所有出邊所需要的花費,問要刪除所有的點需要的最少花費為多少?分析 因為涉及到了點權和所有的邊那麼很容易想到最小點權覆蓋,但是這裡每個點有兩個權值怎麼處理呢?這樣建圖 將點拆成兩個點,每個點對...

poj 3498 網路流 拆點

題意 某個冰塊上有a只企鵝,總共可以跳出去b只,問是否可能所有的企鵝都跳到某一塊冰塊上,輸出所有的可能的冰塊的編號。由於每個點只能跳出去m只企鵝,所以要拆點 假如不拆點,乙個點到另乙個點可能會跳多於m只企鵝 通過拆點後u u 間的容量來完成題目的要求 對點的一些限制 建圖 i i n 容量為m i ...

POJ 2125 最小點權覆蓋集(輸出方案)

題意 給乙個圖 有自迴路,重邊 要去掉所有邊,規則 對某個點,可以有2種操作 去掉進入該點 的所有邊,也可以去掉出該點所有邊,第一種代價為w 第二種代價為w 求最小代價去除所有邊。己思 點的權被分為出入?必然拆點啊!每個點一分為二,點權 出的為出點權,入的為入點權,原來邊仍在 注意,這裡 1 1 不...