題解 奶牛隱藏

2022-10-10 22:30:20 字數 985 閱讀 7727

可以想到把奶牛當做水流,從最初奶牛在的節點,流到他最後停下的節點。

但是時間不容易在圖上體現出來,考慮二分這個時間(這是網路流常見套路),然後判定在這個時間內,所有奶牛能否流到匯點。

對於建圖,首先是對源點向每個點建一條邊,容量為這個點初始的奶牛數,每個點向匯點連一條邊,容量為這個點最多容納奶牛的數量。

至於中間點,在乙個確定的時間內,每個點能夠走向的其他點是固定的,可以預先用floyed預處理,對於這個點所有能夠走到的點連一條容量為inf的邊。

但是這樣有可能會出問題:

1可以走到2,2可以走到3,但是在圖中1也可以走到3了,如何消除這種連鎖的影響呢?

我們可以將每個點拆成兩部分,左部點連源點,右部點連匯點,對於中間的邊只允許從左部點連向右部點。

#includeusing namespace std;

#define int long long

inline int read()

while(ch>='0'&&ch<='9')

return x*w;

}inline void write(int x)

const int n=210,m=1e5+100,inf=2e18;

int n,m,s,t,a[n],b[n],f[n][n];

struct nodee[m<<1];

int hd[n<<1],cnt=1,now[n<<1],d[n<<1];

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

queueq;

bool bfs()

} return 0;

}int dinic(int x,int flow)

if(r==maxn+1)

write(r);

return 0;

}

luogu2402 奶牛隱藏

在乙個農場裡有n塊田地。某天下午,有一群牛在田地裡吃草,他們分散在農場的諸多田地上,農場由m條無向的路連線,每條路有不同的長度。突然,天降大雨,奶牛們非常混亂,想要快點去躲雨。已知每個田地都建立有乙個牛棚,但是每個牛棚只能容納一定數量的牛躲雨,如果超過這個數量,那多出的牛只能去別的田地躲雨。奶牛們每...

luogu P2402 奶牛隱藏

題目傳送門 題意 有n個點,m條邊,每乙個點一開始都有b1i頭奶牛,並且都可以容納b2i頭奶牛,但是b1i有可能大於b2i,因此奶牛需要遷徙,遷徙的時間為路程的長度。求最小的時間,若無法完成,輸出 1。思路 容易想到最短路floyd,因為可以與處理出從i點到j點的最短路 即時間花費 然後發現時間好像...

題解 遊蕩的奶牛 C

題目 題目描述 奶牛們在被劃分成n行m列 2 n 100 2 m 100 的草地上游走,試圖找到整塊草地中最美味的牧草。farmer john在某個時刻看見貝茜在位置 r1,c1 恰好t 0 t 15 秒後,fj又在位置 r2,c2 與貝茜撞了正著。fj並不知道在這t秒內貝茜是否曾經到過 r2,c2...