BZOJ 1305 二分 網路流

2022-04-30 06:30:06 字數 962 閱讀 9465

思路:

建圖我根本沒有想到啊…….

(我是不會告訴你我借鑑了一下題解的思路)

把每個人拆成喜歡的和不喜歡的點

男 喜歡 向 男 不喜歡 連 邊權為k的邊

如果男喜歡女 那麼 男喜歡向 女喜歡 連 1

如果男 不喜歡女 那麼 男不喜歡 向 女不喜歡 連1

男 喜歡 向 男不喜歡 連k

女 不喜歡 向 女喜歡 連k

源點 向 男喜歡 連 二分的那個值

女喜歡 向匯點 連 二分的那個值

最後判斷一下 總流量 是不是等於 n*二分的那個值

嗯 大概就醬~

//by siriusren

#include

#include

#include

#include

using

namespace

std;

#define n 10005

int n,k,ed=6666,answer;

char a[55][55];

struct dinic

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

bool insert(int num)

for(int i=1;i<=n;i++)add(i,i+2*n,k),add(i+3*n,i+n,k),add(i+n,6666,num);

return flow()==num*n;

}bool tell()

return vis[ed]!=-1;

}int zeng(int x,int y)

if(!y)vis[x]=-1;

return r;

}int flow()

}dinic;

int main()

printf("%d\n",answer);

}

BZOJ1305 網路流最大流

bzoj1305 網路流最大流 分析 建立源點和匯點,將男孩分為喜歡點和不喜歡點,每個男孩喜歡點跟源點連線,權值為要求的答案,女孩跟匯點連線,權值為要求的答案 男孩的喜歡點和男孩的不喜歡點鏈結,權值為k,女孩的喜歡點和女孩的不喜歡點鏈結,權值為k 男孩跟喜歡的女孩連線,權值為1,同樣男孩不喜歡的女孩...

(二分 網路流)Optimal Milking

題意為n個奶牛站,m頭奶牛,每個奶牛站的奶牛上限k 給出奶牛站和奶牛對其他實體的距離,距離為0即為兩個實體無路徑,求出所有奶牛到奶牛站中走的最遠的奶牛的最遠距離的最小值 最大中的最小問題,可以二分。我們先用floyd處理出實體到實體之間的最近距離,二分這個最遠距離,建圖 兩實體距離小於等於二分值時才...

BZOJ2756 奇怪的遊戲(二分,網路流)

bzoj blinker最近喜歡上乙個奇怪的遊戲。這個遊戲在乙個 n m 的棋盤上玩,每個格仔有乙個數。每次 blinker 會選擇兩個相鄰 的格仔,並使這兩個數都加上 1。現在 blinker 想知道最少多少次能使棋盤上的數都變成同乙個數,如果永遠不能變成同 乙個數則輸出 1。輸入的第一行是乙個整...