BZOJ 1934 善意的投票

2022-07-17 10:42:14 字數 2000 閱讀 4699

題目大意:

幼兒園裡有n個小朋友打算通過投票來決定睡不睡午覺。對他們來說,這個問題並不是很重要,於是他們決定發揚謙讓精神。雖然每個人都有自己的主見,但是為了照顧一下自己朋友的想法,他們也可以投和自己本來意願相反的票。我們定義一次投票的衝突數為好朋友之間發生衝突的總數加上和所有和自己本來意願發生衝突的人數。 我們的問題就是,每位小朋友應該怎樣投票,才能使衝突數最小?

思路:

最小割,所有贊成的與源點連邊,所有反對的與匯點連邊,朋友之間連邊,求最小割即可。

1 #include2

#define ios ios::sync_with_stdio(false);//

不可再使用scanf printf

3#define max(a, b) ((a) > (b) ? (a) : (b))//

禁用於函式,會超時

4#define min(a, b) ((a) < (b) ? (a) : (b))

5#define mem(a) memset(a, 0, sizeof(a))

6#define dis(x, y, x1, y1) ((x - x1) * (x - x1) + (y - y1) * (y - y1))

7#define mid(l, r) ((l) + ((r) - (l)) / 2)

8#define lson ((o)<<1)

9#define rson ((o)<<1|1)

10#define accepted 0

11#pragma comment(linker, "/stack:102400000,102400000")//

棧外掛程式12

using

namespace

std;

13 inline int

read()

1417

while (ch>='

0'&&ch<='9')

18return x*f;19}

20 typedef long

long

ll;21

const

int maxn = 2000 + 10;22

const

int mod = 1000000007;//

const引用更快,巨集定義也更快

23const

int inf = 1e9 + 7;24

const

double eps = 1e-6;25

26struct

edge

2730

};31 vectore;

32 vectorg[maxn];

33int level[maxn];//

bfs分層,表示每個點的層數

34int iter[maxn];//

當前弧優化

35int

m;36

void addedge(int u, int v, int

c)37

44void bfs(int s)//

預處理出level陣列

45//

直接bfs到每個點

4663}64

}65}66

int dfs(int u, int t, int f)//

dfs尋找增廣路

6786}87

}88return0;

89}90int maxflow(int s, int

t)91

103}

104return

flow;

105}

106int

x[maxn];

107int

main()

108118

while(m--)

119127 printf("

%d\n

", maxflow(s, t));

128return

accepted;

129 }

BZOJ 1934 善意的投票 最小割

time limit 1 sec memory limit 64 mb submit 2354 solved 1471 submit status discuss 幼兒園裡有n個小朋友打算通過投票來決定睡不睡午覺。對他們來說,這個問題並不是很重要,於是他們決定發揚謙讓精神。雖然每個人都有自己的主見,...

BZOJ1934Vote 善意的投票

1934 shoi2007 vote 善意的投票 time limit 1 sec memory limit 64 mb submit 1574 solved 960 description 幼兒園裡有n個小朋友打算通過投票來決定睡不睡午覺。對他們來說,這個問題並不是很重要,於是他們決定發揚謙讓精神...

SHOI2007 bzoj1934 善意的投票

description 幼兒園裡有n個小朋友打算通過投票來決定睡不睡午覺。對他們來說,這個問題並不是很重要,於是他們決定發揚謙讓精神。雖然每個人都有自己的主見,但是為了照顧一下自己朋友的想法,他們也可以投和自己本來意願相反的票。我們定義一次投票的衝突數為好朋友之間發生衝突的總數加上和所有和自己本來意...