PIGS POJ 1149 水最大流

2022-06-10 23:57:25 字數 2099 閱讀 6774

題意:

有m個豬圈,每個豬圈裡初始時有若干頭豬。一開始所有豬圈都是關閉的。依次來了n個顧客,每個顧客分別會開啟指定的幾個豬圈,從中買若干頭豬。每個顧客分別都有他能夠買的數量的上限。每個顧客走後,他開啟的那些豬圈中的豬,都可以被任意地調換到其它開著的豬圈裡,然後所有豬圈重新關上。問總共最多能賣出多少頭豬。(1 <= n <= 100, 1 <= m <= 1000)

解析:因為是依次 所以對於當前第i個顧客 所對應的豬圈 向前 i - 1 個顧客種有對應這個豬圈的顧客的其它豬圈 就好啦

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define rap(i, a, n) for(int i=a; i<=n; i++)

#define rep(i, a, n) for(int i=a; i#define lap(i, a, n) for(int i=n; i>=a; i--)

#define lep(i, a, n) for(int i=n; i>a; i--)

#define rd(a) scanf("%d", &a)

#define rlld(a) scanf("%lld", &a)

#define rc(a) scanf("%c", &a)

#define rs(a) scanf("%s", a)

#define rb(a) scanf("%lf", &a)

#define rf(a) scanf("%f", &a)

#define pd(a) printf("%d\n", a)

#define plld(a) printf("%lld\n", a)

#define pc(a) printf("%c\n", a)

#define ps(a) printf("%s\n", a)

#define mod 2018

#define ll long long

#define ull unsigned long long

#define pair pair#define mem(a, b) memset(a, b, sizeof(a))

#define _ ios_base::sync_with_stdio(0),cin.tie(0)

//freopen("1.txt", "r", stdin);

using

namespace

std;

const

int maxn = 1e5 + 10, inf = 0x7fffffff

;int

n, m, s, t;

vector

g[maxn], f[maxn];

int head[maxn], cur[maxn], vis[maxn], d[maxn], cnt, nex[maxn << 1

];struct

node

node[maxn

<< 1

];void add_(int u, int v, int

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

c)bool

bfs()}}

return d[t] != 0;}

int dfs(int u, int

cap)

}if(cap > 0) d[u] = -1

;

return

ret;

}int

dinic()

return

ans;

}int

main()

rap(i,

1, n)

g[v].push_back(i);

f[i].push_back(v);

}rd(w);

add(s, m +i, w);

}pd(dinic());

}return0;

}

POJ1149 養豬(最大流)

題目描述 尼克在一家養豬場工作,這家養豬場共有m間鎖起來的豬舍,由於豬舍的鑰匙都給了客戶,所以尼克沒有辦法開啟這些豬舍,客戶們從早上開始乙個接乙個來購買生豬,他們到達後首先用手中的鑰匙開啟他所能開啟的全部豬舍,然後從中選取他要買的生豬,尼克可以在此期間將開啟的豬舍中的豬調整到其它開著的豬舍中,每個豬...

POJ1149 PIGS 最大流 優化建模

pigs 題目大意 有 m m 個豬圈,每個豬圈內有一些豬,有 n role presentation style position relative n n名顧客陸續到來,他們每個人能夠開乙個集合內的豬圈,並且能從這些豬圈中買走至多bi b i頭豬,在這個時候,我們還能對這些豬圈內的豬進行調動,每...

盛水最大的容器

給你 n 個非負整數 a1,a2,an,每個數代表座標中的乙個點 i,ai 在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 i,ai 和 i,0 找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。說明 你不能傾斜容器。示例 1 輸入 1,8,6,2,5,4,8,3,7 輸出...