bzoj 1066 蜥蜴
最大流。 建图:首先将每根柱子拆成两个点。 每根柱子的入点向出点连一条容量为柱子高度的边。 每根柱子的出点向可以到达的柱子的入点连一条容量为正无穷的边。 源点向每根初始有蜥蜴的柱子的入点连一条容量为一的边。 每根可以跳出地图的柱子的出点向汇点连一条容量为正无穷的边。 跑一遍最大流就是最多能逃出的蜥蜴数。 1 #include<cstring> 2 #include<cstdio> 3 #include<algorithm> 4 #include<iostream> 5 #include<cmath> 6 #include<queue> 7 using namespace std; 8 const int dian=8005; 9 const int bian=160005; 10 const int INF=0x3f3f3f3f; 11 int h[dian],nxt[bian],ver[bian],val[bian],ch[dian]; 12 char mapp[25][25],map[25][25]; 13 char lala[25]; 14 int n,m,d,tot,ans; 15 int S,T; 16 void add(int aa,int bb,int cc){ 17 tot++;ver[tot]=bb;nxt[tot]=h[aa];val[tot]=cc;h[aa]