題意不多說了,解題思路詳見胡波濤的《最小割模型在資訊學競賽的應用》**。
複習了一下鏈式前向星,雖然都是isap,但是寫起來還是有許多要注意的地方。詳細見**:
#include#include#include#include#include#define rep(i,a,b) for (int i=a;i<(b+1);i++)
using namespace std;
const int maxn=60000;
const int maxm=600000;
const int inf=1<<28;
int n,m,cnt,head[maxn],pnt[maxm],nxt[maxm],flow[maxm],pre[maxn],d[maxn],iter[maxn],gap[maxn],s,t;
bool vis[maxn]=;
void addedge(int u,int v,int f)
void spfa() }}
int augement()
return f;
}int max_flow()
bool adv=false;
for (int &i=iter[u];i!=-1;i=nxt[i]) if (flow[i]&&d[u]==d[pnt[i]]+1)
if (!adv)
} return fl;
}int main()
int sum=0;
rep(i,1,m)
printf("%d\n",sum-max_flow());
} return 0;
}
hdu 3879 最大權閉包)
選擇了一條邊就會選擇兩個點,邊的花費為正,點的花費為負,把邊看成點,這個點向兩個端點連一條邊,表示選擇這條邊就會選擇這兩個點 然後題目就相當於最大權閉合圖的模型了 最大權閉包模型中vs與正收益的點連邊,負收益的點與vt連邊,容量取絕對值,然後點與點之間連容量為inf的邊 題意 有n個點,m個選擇,建...
hdu3879 網路流(經典最大獲利問題)
這題建圖自己想了半天搞不懂,然後看了一下別人的建圖。一臉茫然。最後去看了下胡波濤的 最小割模型在資訊學競賽的應用 裡面詳細的講解了將最大獲利問題轉換為最小割模型的過程。建圖 源點與人連邊,容量為獲利。站點與匯點連邊,容量為耗資。然後是相應的人與其需求的站點連邊,容量為無窮。這樣建圖就完成了,然後就是...
hdu 5458 樹鏈剖分模板
題意 給出一張n個點,m條邊的無向圖,有兩個操作 1.刪除 u,v 間的一條邊 2.如果刪除 u,v 間的一條邊可使其不連通,找出這樣的邊的個數,就是找 u,v 間橋的個數 思路 首先離線這些操作,時光倒流從最終狀態逆著加邊加回原圖,可以考慮用並查集建樹,然後以樹作為最終狀態,再樹鏈剖分預處理下,建...