BZOJ 3894 文理分科

2021-07-10 11:44:03 字數 2595 閱讀 3823

解四個方程。。

為了簡潔我們畫出來兩個來解方程推理一下。

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 namespace std;

int n, m;

const int inf = 0x7fffffff;

struct edgeedge[maxn << 2];

int h[10010], cnt = 1;

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

queueq;

int d[3010], s, t, a[3010], b[3010], tmp[3010];

bool bfs()

}}return d[t] != -1;}

int dfs(int x, int a)

}if(used == 0)d[x] = -1;

return used;}

int dinic()

int main()

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

scanf("%d", &m);

int k, size = n, c1 = 0, c2 = 0;

while(m --)

printf("%d\n", total - dinic());

return 0;

}

3894: 文理分科

time limit: 10 sec  memory limit: 512 mb

submit: 339  solved: 213

[submit][status][discuss]

description

文理分科是一件很糾結的事情!(雖然看到這個題目的人肯定都沒有糾

結過)小p所在的班級要進行文理分科。他的班級可以用乙個n*m的矩陣進行

描述,每個格仔代表乙個同學的座位。每位同學必須從文科和理科中選擇

一科。同學們在選擇科目的時候會獲得乙個滿意值。滿意值按如下的方式

得到:1.如果第i行第秒j的同學選擇了文科,則他將獲得art[i][j]的滿意值,如

果選擇理科,將得到science[i][j]的滿意值。

2.如果第i行第j列的同學選擇了文科,並且他相鄰(兩個格仔相鄰當且

僅當它們擁有一條相同的邊)的同學全部選擇了文科,則他會更開

心,所以會增加same_art[i][j]的滿意值。

3.如果第i行第j列的同學選擇了理科,並且他相鄰的同學全部選擇了理

科,則增加same_science[i]j的滿意值。

小p想知道,大家應該如何選擇,才能使所有人的滿意值之和最大。請

告訴他這個最大值。

input

第一行為兩個正整數:n,m

接下來n術m個整數,表示art[i][j];

接下來n術m個整數.表示science[i][j];

接下來n術m個整數,表示same_art[i][j];

output

輸出為乙個整數,表示最大的滿意值之和

#include #include #include #include #include #define maxn 1000010

using namespace std;

int n, m;

const int inf = 0x7fffffff;

struct edgeedge[maxn << 3];

int h[100010], cnt = 1;

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

queueq;

int d[100010], s, t;

bool bfs()

}}return d[t] != -1;

}int dfs(int x, int a)

}if(used == 0)d[x] = -1;

return used;

}int dinic()

int pos[110][110];

const int dx = ;

const int dy = ;

int main()

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

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

int size = t;

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 ++)

}printf("%d\n", total - dinic());

return 0;

}

BZOJ 3894 文理分科

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

bzoj3894 文理分科

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

bzoj3894 文理分科

description 文理分科是一件很糾結的事情!雖然看到這個題目的人肯定都沒有糾 結過 小p所在的班級要進行文理分科。他的班級可以用乙個n m的矩陣進行 描述,每個格仔代表乙個同學的座位。每位同學必須從文科和理科中選擇 一科。同學們在選擇科目的時候會獲得乙個滿意值。滿意值按如下的方式 得到 1 ...