#16720: 這怎麼看都沒問題啊..


hq8398 (一群牛)

學校 : 國立花蓮高級中學
編號 : 88824
來源 : [1.164.108.193]
最後登入時間 :
2024-04-28 01:30:58
d626. 小畫家真好用 -- jack1 | From: [118.169.205.180] | 發表日期 : 2019-02-01 22:16

#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
char arr[100][100];
void BFS(int x,int y,int size)
{
queue<int> Q;
Q.push(x);
Q.push(y);
while(!Q.empty())
{
int x=Q.front();
Q.pop();
int y=Q.front();
Q.pop();
if(arr[x+1][y]=='-'&&x+1<size)
{
Q.push(x+1);
Q.push(y);
arr[x+1][y]='+';
}
if(arr[x-1][y]=='-'&&x-1>=0)
{
Q.push(x-1);
Q.push(y);
arr[x-1][y]='+';
}
if(arr[x][y+1]=='-'&&y+1<size)
{
Q.push(x);
Q.push(y+1);
arr[x][y+1]='+';
}
if(arr[x][y-1]=='-'&&y-1>=0)
{
Q.push(x);
Q.push(y-1);
arr[x][y-1]='+';
}
}
return;
}
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
{
memset(arr,0,sizeof(arr));
for(int i=0;i<a;i++)
scanf("%s",arr[i]);
int x,y;
scanf("%d%d",&x,&y);
BFS(x,y,a);
for(int i=0;i<a;i++)
printf("%s\n",arr[i]);
// printf("\n");
}
return 0;
}

一直WA line1 真的想不到什麼問題

 
#16723: Re:這怎麼看都沒問題啊..


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
d626. 小畫家真好用 -- jack1 | From: [49.158.83.43] | 發表日期 : 2019-02-01 23:10

試試看把 if 們的條件式的條件交換,如下:

if(x + 1 < size && arr[x + 1][y] == '-')
{
  Q.push(x + 1);
  Q.push(y);
  arr[x + 1][y] = '+';
}
if(x - 1 >= 0 && arr[x - 1][y] == '-')
{
  Q.push(x - 1);
  Q.push(y);
  arr[x - 1][y] = '+';
}
if(y + 1 < size && arr[x][y + 1] == '-')
{
  Q.push(x);
  Q.push(y + 1);
  arr[x][y + 1] = '+';
}
if(y - 1 >= 0 && arr[x][y - 1] == '-')
{
  Q.push(x);
  Q.push(y - 1);
  arr[x][y - 1] = '+';
}

不行的話,就再上來問問看吧。

 

以上。

 
ZeroJudge Forum