bzoj1458 士兵佔據

2022-08-17 16:30:26 字數 1803 閱讀 3115

time limit: 10 sec  memory limit: 64 mb

submit: 685  solved: 398

[submit][status][id=1458" style="color: rgba(0, 0, 255, 1); text-decoration: none" rel="noopener">discuss]有乙個m * n的棋盤,有的格仔是障礙。如今你要選擇一些格仔來放置一些士兵,乙個格仔裡最多能夠放置乙個士兵,障礙格里不能放置士兵。我們稱這些士兵佔據了整個棋盤當滿足第i行至少放置了li個士兵, 第j列至少放置了cj個士兵。如今你的任務是要求使用最少個數的士兵來佔據整個棋盤。

第一行兩個數m, n, k分別表示棋盤的行數,列數以及障礙的個數。 第二行有m個數表示li。 第三行有n個數表示ci。

接下來有k行,每行兩個數x, y表示(x, y)這個格仔是障礙。

輸出乙個數表示最少須要使用的士兵個數。

假設不管放置多少個士兵都沒有辦法佔據整個棋盤,輸出」jiong!」 (不含引號)

4 4 4

1 1 1 1

0 1 0 3

1 42 2

3 34 3

4資料範圍

m, n <= 100, 0 <= k <= m * n

有源匯有上下界最小流問題

將行抽象為左部點,列抽象為右部點。

假設某個位置沒有障礙。就從行相應的節點到列相應的節點連邊。下界為0,上界為1。

在從源點向每行相應的節點連邊,從每列相應的節點向匯點連邊,下界均為該行或列的最少士兵數。上界均為正無窮。

最後求s到t的最小流。

#include#include#include#include#include#include#include#define f(i,j,n) for(int i=j;i<=n;i++)

#define d(i,j,n) for(int i=j;i>=n;i--)

#define ll long long

#define pa pair#define maxn 300

#define maxm 100000

#define inf 1000000000

using namespace std;

int head[maxn],cur[maxn],dis[maxn],in[maxn];

int cnt=1,mx=0,maxflow,n,m,k,x,y,s,t,ss,tt;

bool a[105][105];

struct edge_type

e[maxm];

inline int read()

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

return x*f;

}inline void add_edge(int x,int y,int v)

;head[x]=cnt;

e[++cnt]=(edge_type);head[y]=cnt;

}inline void insert(int x,int y,int l,int r)

inline void build()

}inline bool bfs()

} return false;

}inline int dfs(int x,int f)

} if (!sum) dis[x]=-1;

return sum;

}inline void dinic()

}inline void minflow()

{ s=ss;t=tt;

dinic();

int ans=e[cnt].v;

if (ans

bzoj1458 士兵佔據

time limit 10 sec memory limit 64 mb submit 685 solved 398 submit status discuss 有乙個m n的棋盤,有的格仔是障礙。如今你要選擇一些格仔來放置一些士兵,乙個格仔裡最多能夠放置乙個士兵,障礙格里不能放置士兵。我們稱這些士...

BZOJ 1458 士兵占領

time limit 10 sec memory limit 64 mb submit 632 solved 366 submit status discuss description 有乙個m n的棋盤,有的格仔是障礙。現在你要選擇一些格仔來放置一些士兵,乙個格仔裡最多可以放置乙個士兵,障礙格里不...

bzoj 1458 士兵占領

time limit 10 sec memory limit 64 mb submit 784 solved 458 submit status discuss 有乙個m n的棋盤,有的格仔是障礙。現在你要選擇一些格仔來放置一些士兵,乙個格仔裡最多可以放置乙個士兵,障礙格里不能放置士兵。我們稱這些士...