Hdu4771(杭州赛区)(二)

2014-11-24 13:26:15 · 作者: · 浏览: 64
visit,0,sizeof(visit)); if(++i == k) return step; } q.push(node(xx,yy,step)); visit[xx][yy] = 1; if(flag) break; } } return -1; } int main() { #ifdef xxz freopen("in.txt","r",stdin); #endif while(scanf("%d%d",&n,&m)!=EOF && n != 0) { for(int i = 0; i < n; i++) { scanf("%s",g[i]); for(int j = 0; j < m; j++) { if(g[i][j] == '@') { sx = i; sy = j; } } } scanf("%d",&k); int Case = 1; for(int i = 0; i < k; i++) { scanf("%d%d",&ss[i].x,&ss[i].y); ss[i].x--; ss[i].y--; p[i] = i; Case *= i+1; } int ans = -1; while(Case--) { int temp = bfs(); // cout<
-1 && (temp < ans || ans == -1)) ans = temp; next_permutation(p,p+k); } printf("%d\n",ans); } return 0; }