杭电1010(WA)

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s[100][100];
int flag=-1;
int bx[4]={0,0,-1,1};int by[4]={-1,1,0,0},n,m;

void dfs(int x,int y,int t)
{
    t--;
    int i,dx,dy;

        for(i=0;i<4;i++)
        {
          dx=x+  bx[i];
          dy=y+by[i];
          if(dx<n&&dx>-1&&dy<m&&dy>-1&&s[dx][dy]=='S')
          {
             
             if(t>=0)
             {
                 s[dx][dy]='X';
               printf("YES
");
              flag=1;


             }}
          if(dx<n&&dx>-1&&dy<m&&dy>-1&&s[dx][dy]=='.')
          {

              s[dx][dy]='X';
              dfs(dx,dy,t);
          }


        }

}



int main()
{
    int t,j,i,dx,dy;
    while((scanf("%d%d%d",&n,&m,&t)==3)&&(n!=0&&m!=0&&t!=0)){
            flag=-1;

    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
    {
       cin>>s[i][j];
       if(s[i][j]=='D'){
        dx=i;dy=j;

       }
    }
    dfs(dx,dy,t);

    if(flag==-1)
        printf("NO
");






    }
    return 0;
}

  菜鸟写了两个小时的1010题后并没有发现为什么错,懒得找测试数据,贴个wa贴

原文地址:https://www.cnblogs.com/41412179guo/p/4587021.html