水题一道却交了4次QAQ,真是蒟蒻QAQ

CODE:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
struct node{
 int x,y,t;
}st,en;
queue<node> s;
#define maxn 1010
int a[maxn][maxn];
bool b[maxn][maxn];
int w[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n,m;
char str[10000];
int main(){
 scanf("%d%d",&n,&m);
 for (int i=1;i<=n;i++){
  scanf("%s",str);
  for (int j=1;j<=m;j++){
   if (str[j-1]=='#') a[i][j]=1;
   else if (str[j-1]=='@') {st=(node){i,j,0};a[i][j]=1;}
   else if (str[j-1]=='=') en=(node){i,j,0};
   else  if (str[j-1]!='.')a[i][j]=str[j-1];
  }
 }
 s.push(st);
 for (int i=1;i<=n;i++) a[i][0]=a[i][m+1]=1;
 for (int i=1;i<=m;i++) a[0][i]=a[n+1][i]=1;
 while (!s.empty()){
  node u=s.front();
  if (u.x==en.x&&u.y==en.y) {printf("%d",u.t);return 0;}
  s.pop();
  for (int i=0;i<4;i++)
   if (a[u.x+w[i][0]][u.y+w[i][1]]!=1){
    if (a[u.x+w[i][0]][u.y+w[i][1]]>1){
     if (b[u.x+w[i][0]][u.y+w[i][1]]) continue;
     b[u.x+w[i][0]][u.y+w[i][1]]=1;
     for (int k=1;k<=n;k++)
      for (int j=1;j<=m;j++)
       if ( a[k][j]==a[u.x+w[i][0]][u.y+w[i][1]] &&(u.x+w[i][0]!=k||u.y+w[i][1]!=j) ) {s.push((node){k,j,u.t+1});}
    }else {
    a[u.x+w[i][0]][u.y+w[i][1]]=1;
    s.push((node){u.x+w[i][0],u.y+w[i][1],u.t+1});
    }
    }
 }
 return 0;
}

最新文章

  1. UploadHandleServlet
  2. 第3章 拍摄UFO——单一职责原则
  3. 三种常用的MySQL建表语句(转)
  4. Java数据结构和算法之数组与简单排序
  5. angularJs自定义服务
  6. hdoj-2033
  7. 编写高性能JavaScript【转】
  8. Mac上pod install一直停住的解决办法
  9. Domain Model(领域模型)
  10. linux终奌站 信息 格式 更改 /etc/bashrc
  11. console.dir()和console.log()的区别
  12. highcharts的多级下钻以及图形形态转换
  13. Lua热更新(hotfix)
  14. 添加极光推送以及在ios中的问题
  15. [SHOI2014]三叉神经树
  16. POJ1064 Cable master(二分 浮点误差)
  17. PHP安装BCMath扩展
  18. centos7上修改lv逻辑卷的大小
  19. 微信小程序 条件渲染 wx:if
  20. EOS keosd

热门文章

  1. IOS开发-UI学习-NSMutableAttributedString(带属性的字符串)的使用
  2. ASP.NET异步处理
  3. .net中的4种事务总结
  4. WPF中ContextMenu通过CommandParameter传参
  5. Failed to install *.apk on device &#39;emulator-5554&#39;: timeout
  6. 差分硬盘的merge(合并差异)实验分析
  7. Dev的关于XtraGrid的使用2
  8. JWPlayer使用指南
  9. MD5碰撞后时代,MD5还有存在的意义吗?
  10. KB奇遇记(5):奇葩的用人制度