bzoj3894 文理分科 網路流 最小割

2022-05-01 20:18:07 字數 1054 閱讀 1576

題目大意:題目鏈結。

注釋:略。

想法

這種題也是一種套路。

我們新建乙個點表示收益點。

然後把所有的收益都加一起,求最小割表示代價即可。

code

#include #define inf 0x3f3f3f3f 

#define n 1000100

using namespace std;

int to[n<<1],nxt[n<<1],head[n],val[n<<1],tot=1,dis[n],s,t;

queueq;

int d1=;

int d2=;

char *p1,*p2,buf[100000];

#define nc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?eof:*p1++)

int rd() while(c>47) x=(((x<<2)+x)<<1)+(c^48),c=nc(); return x*f;}

inline void add(int x,int y,int z)

bool bfs()

} return false;

}int dinic(int x,int fl)

return fl-tmp;

}int main()

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

for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) }

for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) }

while(bfs()) ans-=dinic(s,1<<30);

cout << ans << endl ;

return 0;

}

小結:這種模型要多積累。

BZOJ 3894 文理分科

time limit 10 sec memory limit 512 mb submit 194 solved 122 submit status discuss description 文理分科是一件很糾結的事情!雖然看到這個題目的人肯定都沒有糾 結過 小p所在的班級要進行文理分科。他的班級可以用...

BZOJ 3894 文理分科

解四個方程。為了簡潔我們畫出來兩個來解方程推理一下。s a aa s b ab a t ba b t bb s x a和其他相關格仔收益 x t 同上 include include include include include define maxn 1000010 using namespac...

bzoj3894 文理分科

s向每個人連邊,容量是選文科的滿意值 每個點向t連邊,容量是選理科的滿意值。再新建2 n m個點,表示每個人和相鄰的人都選文 p1 或都選理 p2 s向p1連邊,容量為這個人的same art,p1再向這個人和相鄰的四個人都連inf的邊 p2向t連邊,容量為這個人的same science,這個人以...