1 #include2 #include 3 #define T 1001 4 #define M 10005 5 #define inf 0x7fffffff 6 #include 7 using namespace std; 8 int cnt=1,r,c,d,head[M],next[10*M],u[10*M],v[10*M],sum,f[25][25],d1[M],q[M],ans; 9 char ch[50]; 10 int S(int a1,int a2) 11 { 12 return (a1-1)*c+a2; 13 } 14 void jia(int a1,int a2,int a3) 15 { 16 cnt++; 17 u[cnt]=a2; 18 v[cnt]=a3; 19 next[cnt]=head[a1]; 20 head[a1]=cnt; 21 return; 22 } 23 bool pan(int a1,int a2,int a3,int a4) 24 { 25 if(a1==a3&&a2==a4) 26 return 0; 27 if((a1-a3)*(a1-a3)+(a2-a4)*(a2-a4)>d*d) 28 return 0; 29 if(!f[a3][a4]) 30 return 0; 31 return 1; 32 } 33 bool bfs() 34 { 35 memset(d1,0,sizeof(int)*M); 36 int h=0,t=1; 37 q[1]=0; 38 d1[0]=1; 39 for(;h
这是一个建图极其恶心的网络流 拆点 xi,xj。每个有石柱地方xi,xj,高。‘L'出S,xi,1;能跳出去的地方建边,能互相跳的石柱建边。