bzoj 2406 矩陣 (有上下界的網路流)

2021-07-26 15:07:32 字數 1090 閱讀 4681

time limit: 10 sec  

memory limit: 128 mb

submit: 229  

solved: 90 [

submit][

status][

discuss]

第一行兩個數n、

m,表示矩陣的大小。

接下來n

行,每行

m列,描述矩陣a。

最後一行兩個數l,

r。第一行,輸出最小的答案;

2 20 1

2 10 11對於

100%

的資料滿足

n,m<=200,0<=l<=r<=1000,0<=aij<=1000

[submit][

status][

discuss]

home

back

題解:有上下界的網路流

直接二分要求的最小答案x,然後用有源匯有上下界的可行流判斷。

s->i 容量[sumi[i]-x,sumi[i]+x] sumi[i]表示第i行的總和

j->t 容量[sumj[j]-x,sumj[j]+x] sumj[j]表示第j行的總和

i->j 容量[l,r]

然後按照有源匯有上下界的可行流建模即可。

#include#include#include#include#include#include#define n 200000

using namespace std;

int in[n],out[n],point[n],v[n],remain[n],nxt[n];

int deep[n],num[n],cur[n],ls,rs,n,m,tot;

int a[203][203],sumi[n],sumj[n],last[n],ck[n];

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

}void isap(int s,int t)

add(t,s,1e9);

isap(ss,tt);

//for (int i=1;i<=n+m+1;i++)

//cout<

上下界網路流判定 BZOJ 2406 矩陣

上下界網路流 二分答案轉化為判定問題 構造矩陣,使得每行每列之和分別滿足在乙個區間內,這就是帶上下界網路流判定問題。s i行 j列 t si mid,si mid l,r sj mid,sj mid 資料範圍看錯了 wa了好久.include include include includeusing...

bzoj2406 矩陣 二分 有上下界可行流

題目描述 輸入第一行兩個數n m,表示矩陣的大小。接下來n行,每行m列,描述矩陣a。最後一行兩個數l,r。輸出第一行,輸出最小的答案 樣例輸入 2 20 1 2 10 1 樣例輸出1題解 二分 有上下界可行流 題目一眼二分,問題轉化為判斷是否存在一種填數方式滿足行之和的差與列之和的差都不超過mid。...

BZOJ2406矩陣 有上下界的可行流 二分答案

第一行兩個數n m,表示矩陣的大小。接下來n行,每行m列,描述矩陣a。最後一行兩個數l,r。第一行,輸出最小的答案 2 20 1 2 10 1 1對於100 的資料滿足 n,m 200,0 l r 1000,0 aij 1000 要求最大值最小,顯然二分答案。每次二分乙個 mid 設每行或每列的 a...