当前位置:   article > 正文

C. Connect 【 BFS + 暴力 】

C. Connect 【 BFS + 暴力 】

题意:给你一个 n * n 的图,给你起点和终点,只要是 0 的位置就可以随便移动,可以上下左右移动,问从起点到终点的最小距离的平方,这里的距离是欧几里得距离,可以通过走 0 来减小距离。

&: BFS 两个点,暴力可以走的点的数组求最小距离。 

 

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. struct node {
  5. int x;
  6. int y;
  7. }l,w,s[20000],e[20000];
  8. int n,sx,sy,ex,ey;
  9. bool vis[200][200];
  10. char gra[200][200];
  11. int dx[] = {0,0,1,-1};
  12. int dy[] = {1,-1,0,0};
  13. void bfs(int x, int y, struct node a[], int &p)
  14. {
  15. memset(vis,false,sizeof(vis));
  16. queue<node> q;
  17. l.x = x-1;l.y = y-1;
  18. q.push(l);
  19. vis[x-1][y-1] = true;
  20. a[p].x = x-1;
  21. a[p ++].y = y-1;
  22. while(!q.empty())
  23. {
  24. w = q.front();
  25. q.pop();
  26. for(int i = 0;i < 4; i ++)
  27. {
  28. int tx = w.x + dx[i];
  29. int ty = w.y + dy[i];
  30. if(tx >= 0 && tx < n && ty >= 0 && ty < n && gra[tx][ty] == '0' && vis[tx][ty] == false)
  31. {
  32. l.x = tx;
  33. l.y = ty;
  34. a[p].x = tx;
  35. a[p ++].y = ty;
  36. q.push(l);
  37. vis[tx][ty] = true;
  38. }
  39. }
  40. }
  41. // return ;
  42. }
  43. int main()
  44. {
  45. scanf("%d", &n);
  46. scanf("%d %d %d %d", &sx, &sy, &ex, &ey);
  47. for(int i = 0; i < n; i ++)
  48. {
  49. getchar();
  50. scanf("%s", gra[i]);
  51. }
  52. int p1 = 0;
  53. int p2 = 0;
  54. bfs(sx,sy,s,p1);
  55. bfs(ex,ey,e,p2);
  56. // printf("%d %d\n",p1,p2);
  57. // for(int i = 0; i < p1; i ++) cout << s[i].x << " " << s[i].y << endl;
  58. // cout << "dddddddddd" << endl;
  59. // for(int i = 0; i < p2; i ++) cout << e[i].x << " " << e[i].y << endl;
  60. int sum = 0x3f3f3f3f;
  61. for(int i = 0; i < p1; i ++)
  62. {
  63. for(int j = 0; j < p2; j ++){
  64. sum = min((s[i].x - e[j].x) * (s[i].x - e[j].x) + (s[i].y - e[j].y) * (s[i].y - e[j].y),sum);
  65. }
  66. }
  67. printf("%d\n",sum);
  68. return 0;
  69. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/1015910
推荐阅读
相关标签
  

闽ICP备14008679号