bzoj 1324 Exca王者之劍(最小割)

2021-07-11 16:02:56 字數 1075 閱讀 8592

time limit: 10 sec  

memory limit: 162 mb

submit: 477  

solved: 245 [

submit][

status][

discuss]

第一行給出數字n,m代表行列數.n,m均小於等於100 下面n行m列用於描述數字矩陣

輸出最多可以拿到多少塊寶石

2 2

1 22 1

42007amber國家隊** [

submit][

status][

discuss]

題解:最小割

因為偶數秒時周圍的點會消失,而又是從偶數秒開始,那麼我們可以發現只有偶數點的時候才可以選擇,而且如果選擇了當前點,那麼他周圍的點一定無法取到,於是想到了對棋盤進行黑白染色,黑點連向源點,白點連向匯點,權值為點中寶石的價值,相鄰的黑白點之間連一條為inf的邊,跑最大流即可。

#include#include#include#include#include#include#define n 400030

#define inf 1000000000

using namespace std;

int n,m;

int point[n],next[n],v[n],remain[n],tot=-1;;

int a[120][120],deep[n],last[n],cur[n],num[n],sum;

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

int addflow(int s,int t)

now=t;

while (now!=s)

return ans;

}void bfs(int s,int t)

}int isap(int s,int t)

else add(t+1,n*m+2,a[i][j]);

}else

else add(t+1,n*m+2,a[i][j]);

}printf("%d\n",sum-isap(1,n*m+2));

}

BZOJ1324 Exca王者之劍

description input 第一行給出數字n,m代表行列數.n,m均小於等於100 下面n行m列用於描述數字矩陣 output 輸出最多可以拿到多少塊寶石 sample input 2 21 2 2 1sample output 4可以發現,所有能取得寶石的點必定是不相鄰的,如果本題點權都為...

BZOJ 1324 Exca王者之劍 最小割

題目大意 給定乙個n m的矩陣,每個格仔有寶石,人任選位置出發,取走當前位置的寶石之後四周的寶石消失,然後可以走兩步,重複上述過程 容易發現乙個格仔取了那麼四周的格仔都不能取 於是方格取數問題 黑白染色 黑色點連源 白色點連匯 流量為格仔的權值 黑白之間連邊 流量為正無窮 用總和減去最大流就是答案 ...

BZOJ 1324 Exca 神劍 最小割

標題效果 鑑於加權值矩陣,帶走乙個地方的權利值之後,與其相鄰的格兒童權利值變0。問多少可以取出到右值。思維 amber 題目。不難建設,圖著色。顏色從s連邊,還有一種顏色向t連邊。再把相鄰的格仔連邊。之後跑最小割,用總權值減去最大流就是答案。code include include include ...