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 ...