s向每個人連邊,容量是選文科的滿意值;每個點向t連邊,容量是選理科的滿意值。
再新建2*n*m個點,表示每個人和相鄰的人都選文(p1)、或都選理(p2)。s向p1連邊,容量為這個人的same_art,p1再向這個人和相鄰的四個人都連inf的邊;p2向t連邊,容量為這個人的same_science,這個人以及周圍相鄰的四個人向t2連邊。
跑最小割。
//最小割
#include
#include
#define maxn 300000
#define inf 0x3f3f3f3f
using namespace std;
int head[maxn], to[maxn], c[maxn], nex[maxn], n, a[150][150], s[150][150], sa[150][150],
ss[150][150], exit, d[maxn], num[maxn], tot=1, s, t, last[maxn], m, ans;
void adde(int a, int b, int cc)
void adde2(int a, int b, int cc)
int isap(int
pos, int in)
exit=--num[d[pos]]==0;
++num[++d[pos]];
last[pos]=head[pos];
return flow;
}int tab(int a, int b)
void init()
for(i=1;i<=n;i++)for(j=1;j<=m;j++)ans+=a[i][j]+s[i][j]+sa[i][j]+ss[i][j];
}int main()
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 文理分科
description 文理分科是一件很糾結的事情!雖然看到這個題目的人肯定都沒有糾 結過 小p所在的班級要進行文理分科。他的班級可以用乙個n m的矩陣進行 描述,每個格仔代表乙個同學的座位。每位同學必須從文科和理科中選擇 一科。同學們在選擇科目的時候會獲得乙個滿意值。滿意值按如下的方式 得到 1 ...