但是不同的是那一道題是相鄰的如果相同則有收益,這題是相鄰的不同才有收益。
轉化到建圖上面時,會發現,兩個相鄰的點連的邊容量會是負數。。
# include # includeview code# include
# include
# include
# include
# include
# include
# include
# include
# include
# include
using
namespace
std;
# define lowbit(x) ((x)&(-x))
# define pi acos(-1.0
)# define eps 1e-8
# define mod
30031
# define inf
1000000000
# define mem(a,b) memset(a,b,
sizeof
(a))
# define for(i,a,n)
for(int i=a; i<=n; ++i)
# define fo(i,a,n)
for(int i=a; ii)
# define bug puts("h
");# define lch p
<<1
,l,mid
# define rch p
<<1|1,mid+1
,r# define mp make_pair
# define pb push_back
typedef pair
pii;
typedef vector
vi;# pragma comment(linker,
"/stack:1024000000,1024000000")
typedef
long
long
ll;int
scan()
while(ch>='
0'&&ch<='9')
return x*f;
}const
int n=10005;//
code begin...
struct edgeedge[n*20
];int head[n], cnt=2, a[105][105], b[105][105], c[105][105
];int s, t, vis[n], n, m, ps[4][2]=;
queue
q;void add_edge(int u, int v, int
w)int get_xy(int x, int y)
intbfs()}}
return vis[t]!=-1;}
int dfs(int x, int
low)
}if (temp==low) vis[x]=-1
;
return low-temp;
}int
dinic()
intmain ()
}printf(
"%d\n
",sum-dinic());
return0;
}
BZOJ2132 圈地計畫(最小割)
傳送門 抄黃學長的題解。黑白染色,對於每個黑點a,s a w商業,a t w工業,對於每個白點b,s b w工業,b t w商業,對於每對有關係的兩點a,b,a b c1 c2。這個建模感受一下就是對的。看黃學長的姿勢之後發現中間那兩條邊沒加反向邊,但是據atp說加了也沒錯,只是慢了一點。應該就是兩...
BZOJ 2132 圈地計畫 最小割
題目大意 有乙個n m的矩陣,在矩陣中填1或2會得到不同的權值。相鄰的兩個格仔數字不相同會得到額外的權值,求最大權值 最小割模型 同一事件兩種選擇獲得不同收益,一定條件下有額外收益,求最大收益。在本題中,相鄰格仔填不同數字會獲得額外收益,於是將矩陣黑白染色 i j 1 每個黑色格仔與s連邊代表填1,...
BZOJ2132 圈地計畫 最小割
最近房地產商gdoi group of dumbbells or idiots 從noi nuts old idiots 手中得到了一塊開發土地。據了解,這塊土地是一塊矩形的區域,可以縱橫劃分為n m塊小區域。gdoi要求將這些區域分為商業區和工業區來開發。根據不同的地形環境,每塊小區域建造商業區和...