记录详情

Accepted


  
# 状态 耗时 内存占用
#1 Accepted 1ms 360.0 KiB
#2 Accepted 1ms 420.0 KiB
#3 Accepted 1ms 400.0 KiB
#4 Accepted 1ms 364.0 KiB

代码

#include <cstdio>
#include <iostream>
#include <cstring> 
using namespace std;
char c[105][105];
int n,m;
int p,xi;
int jp,jx;
int xy[4][2]={1,0,0,1,-1,0,0,-1};
void DFS(int x,int y,int xi,int p)
{
    if(x==n&&y==m)
    {
        if(p<jp)
            jp=p;
        if(xi>jx)
            jx=xi;
        return; 
    }
    for(int i=0;i<4;i++)
    {
        int xx=x+xy[i][0],yy=y+xy[i][1];
        if(c[xx][yy]=='0'||c[xx][yy]=='#')
        {
            bool f=false;
            if(c[xx][yy]=='#')
            {       
                xi++;
                f=true;
            }
            p++;
            c[xx][yy]='1';
            DFS(xx,yy,xi,p);
            xi=f?xi-1:xi;
            c[xx][yy]=f?'#':'0';
            p--;        
        }
    }
}
int main()
{
    jp=99999;
    jx=0;
    memset(c,'1',sizeof(c));
    scanf("%d%d",&n,&m);
    getchar();
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            c[i][j]=getchar();
        getchar();
    }
    bool f=false;
    if(c[1][1]=='#')
        f=true;
    c[1][1]='1';
    if(f) DFS(1,1,1,0);
    else  DFS(1,1,0,0);
    cout<<jp<<' '<<jx<<endl;
    return 0;
}

信息

递交者
类型
递交
题目
P1015 6 营救公主
语言
C++
递交时间
2021-12-06 21:02:03
评测时间
2021-12-06 21:02:03
评测机
分数
100
总耗时
7ms
峰值内存
420.0 KiB