P1189,萌新求调,洛谷IDE就RE
查看原帖
P1189,萌新求调,洛谷IDE就RE
485688
想吃小熊饼干楼主2021/8/1 10:37

rt,应该是29行的循环有问题,但是我的Dev一调试就崩溃了。代码:

#include<bits/stdc++.h>
using namespace std;
char m[60][60];int r,c,n,d[1010];
void dfs(int x,int y,int cnt)
{
    if(cnt==n)
    {
        if(m[x][y]!='X')m[x][y]='*';
        return;
    }
    if(d[cnt]==1&&x-1>=0)dfs(x-1,y,cnt);
    if(d[cnt+1]==1&&x-1>=0)dfs(x-1,y,cnt+1);
    if(d[cnt]==2&&y+1<c)dfs(x,y+1,cnt);
    if(d[cnt+1]==2&&y+1<c)dfs(x,y+1,cnt+1);
    if(d[cnt]==3&&x+1<r)dfs(x+1,y,cnt);
    if(d[cnt+1]==3&&x+1<r)dfs(x+1,y,cnt+1);
    if(d[cnt]==4&&y-1>=0)dfs(x,y-1,cnt);
    if(d[cnt+1]==4&&y-1>=0)dfs(x,y-1,cnt+1);
    return;
}
int main()
{
    int x,y;
    scanf("%d%d",&r,&c);
    for(int i=0;i<r;i++)
    {
    	string s;
    	scanf("%s",&s);
    	for(int j=0;j<c;j++)
    	{
    		m[i][j]=s[j];
    		if(s[j]=='*')
    		{x=i;y=j;s[j]='.';}
		}
	}
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        string s;scanf("%s",&s);
        if(s=="NORTH")d[i]=1;
        if(s=="EAST")d[i]=2;
        if(s=="SORTH")d[i]=3;
        if(s=="WEST")d[i]=4;
    }
    dfs(x,y,0);
    for(int i=0;i<r;i++)printf("%s\n",m[i]);
    return 0;
}
2021/8/1 10:37
加载中...