挺顯然的最大流,源向所有有蜥蜴的點連inf邊,所有點拆成入點和出點,入店向出點連流量為高度的邊,限制流量,所有可以一步跳出去的點向匯連inf邊,跑最大流就行了。。
#include#include#include#define inf 99999999
#define maxn 1005
using namespace std;
struct edge ed[500005];
int i,j,r,c,dm,n,nd,ne=0,cnt=0,a[maxn],map[25][25],dui[500005],d[maxn],u[maxn],que[maxn];
char ch;
void add(int s,int e,int f)
void make(int x,int y,int k)
bool bfs(int s,int t)
head++;
} return d[t]!=0;
}int extend(int x,int minf,int t)
if (f==minf) d[x]=0;
return f-minf;
}int dinic(int s,int t)
int main()
scanf("\n");
} for (i=1;i<=r;i++)
scanf("\n");
} cout<
題解 bzoj1066 SCOI2007 蜥蜴
在乙個r行c列的網格地圖中有一些高度不同的石柱,一些石柱上站著一些蜥蜴,你的任務是讓盡量多的蜥蜴逃 到邊界外。每行每列中相鄰石柱的距離為1,蜥蜴的跳躍距離是d,即蜥蜴可以跳到平面距離不超過d的任何乙個石 柱上。石柱都不穩定,每次當蜥蜴跳躍時,所離開的石柱高度減1 如果仍然落在地圖內部,則到達的石柱高...
BZOJ1066 蜥蜴 做題筆記
做這題的時候被自己打的模板坑了,查了好久好久都沒查出錯。以後做題也不能過分信任某一段 而不去查它的錯了。恩,這題的背景總讓人想起科學的上網。這題的距離是指歐幾里得距離,就是sqrt x1 x2 2 y1 y2 2 我之前竟然沒有見過,按照上下左右還有對角線去遍歷,結果顯而易見。include inc...
bzoj 1066 蜥蜴(最大流)
在乙個r行c列的網格地圖中有一些高度不同的石柱,一些石柱上站著一些蜥蜴,你的任務是讓盡量多的蜥蜴逃 到邊界外。每行每列中相鄰石柱的距離為1,蜥蜴的跳躍距離是d,即蜥蜴可以跳到平面距離不超過d的任何乙個石 柱上。石柱都不穩定,每次當蜥蜴跳躍時,所離開的石柱高度減1 如果仍然落在地圖內部,則到達的石柱高...