BZOJ 1497 最小割應用

2022-05-07 03:33:11 字數 1711 閱讀 3328

題意:基站耗費成本,使用者獲得利益(前提是投入成本),求最大獲利

最小割的簡單應用,所有可能的收益-(消耗的成本/失去的收益),無窮大邊表示衝突,最小割求括號內的範圍即可

#include#include#include#include#include#include#include#include#include#include#include#include#include#define rep(i,j,k) for(register int i=j;i<=k;i++)

#define rrep(i,j,k) for(register int i=j;i>=k;i--)

#define erep(i,u) for(register int i=head[u];~i;i=nxt[i])

#define iin(a) scanf("%d",&a)

#define lin(a) scanf("%lld",&a)

#define din(a) scanf("%lf",&a)

#define s0(a) scanf("%s",a)

#define s1(a) scanf("%s",a+1)

#define print(a) printf("%lld",(ll)a)

#define enter putchar('\n')

#define blank putchar(' ')

#define println(a) printf("%lld\n",(ll)a)

#define ios ios::sync_with_stdio(0)

using namespace std;

const int maxn = 2e5+11;

const int oo = 0x3f3f3f3f;

typedef long long ll;

ll read()

while(ch>='0'&&ch<='9')

return x*f;

}int to[maxn<<1],nxt[maxn<<1],cap[maxn<<1],flow[maxn<<1];

int head[maxn],tot;

void init()

void add(int u,int v,int w)

int n,m,s,t;

int dis[maxn],pre[maxn],cur[maxn],gap[maxn];

bool vis[maxn];

struct queue

void push(int u)

int pop()

bool empty()

}que;

void bfs()}}

}int aug()

u=t;

while(u!=s)

return ans;

}int isap()

}if(!ok)

if(--gap[dis[u]]==0) break;

dis[u]=mn+1;gap[dis[u]]++;cur[u]=head[u];

if(u!=s) u=to[pre[u]^1];}}

return ans;

}int main()

ll sum=0;

rep(i,1,m)

ll ans=isap();

println(sum-ans);

}return 0;

}

bzoj 1497 最大獲利(最小割)

傳送門biu 最小割模型,每個中轉站建乙個點,每個使用者建乙個點。有關係的中轉站和使用者之間連inf,s連每個中轉站流量為成本,使用者連t流量為利潤。先獲得所有利潤,割掉中轉站成本或者使用者獲利,所有利潤減最小割即為答案。include using namespace std const int i...

BZOJ 1497, 最大獲利

傳送門 選擇合理方案新建基站,滿足部分使用者群需要,求最大獲利 淨獲利 獲益之和 投入成本之和 注意到類似於有向無環圖的性質,套用最小割模型中的最大權閉合圖即可。include include const int inf 0u 2,v 55005,e 320005 int n,m,s,t,x,y,z...

BZOJ1497 最大獲利

最大獲利 description 新的技術正衝擊著手機通訊市場,對於各大運營商來說,這既是機遇,更是挑戰。thu集團旗下的cs t通訊公司在新一代通訊技術血戰的前夜,需要做太多的準備工作,僅就站址選擇一項,就需要完成前期市場研究 站址勘測 最優化等專案。在前期市場調查和站址勘測之後,公司得到了一共n...