评测机坏了!!!
  • 板块P1301 魔鬼之城
  • 楼主Ch35
  • 当前回复14
  • 已保存回复14
  • 发布时间2022/7/21 09:52
  • 上次更新2023/10/27 19:10:00
查看原帖
评测机坏了!!!
672360
Ch35楼主2022/7/21 09:52

我只在代码里定义了一个short a[1005][1005]数组,评测机却说我全MLE ,1005 * 1005 * 2B=2020050B=1973KB=2MB,远远没有超过125MB!

#include<bits/stdc++.h>
using namespace std;
short a[1005][1005];
int n,m,minn=9999999;
void dfs(int x,int y,int z,int cnt){
    if(x==n&&y==m){
        minn=min(minn,cnt);
    }
    if(z!=1&&(x-a[x][y]>0&&(a[x-a[x][y]][y]!=0||x-a[x][y]==n&&y==m)))dfs(x-a[x][y],y,1,cnt+1);
    if(z!=2&&(y-a[x][y]>0&&(a[x][y-a[x][y]]!=0||x==n&&y-a[x][y]==m)))dfs(x,y-a[x][y],2,cnt+1);
    if(z!=3&&(y+a[x][y]<=m&&(a[x][y+a[x][y]]!=0||x==n&&y+a[x][y]==m)))dfs(x,y+a[x][y],3,cnt+1);
    if(z!=4&&(x+a[x][y]<=n&&(a[x+a[x][y]][y]!=0||x+a[x][y]==n&&y==m)))dfs(x+a[x][y],y,4,cnt+1);
    if(z!=5&&(x-a[x][y]>0&&y-a[x][y]>0&&(a[x-a[x][y]][y-a[x][y]]!=0||x-a[x][y]==n&&y-a[x][y]==m)))dfs(x-a[x][y],y-a[x][y],5,cnt+1);
    if(z!=6&&(x-a[x][y]>0&&y+a[x][y]<=m&&(a[x-a[x][y]][y+a[x][y]]!=0||x-a[x][y]==n&&y+a[x][y]==m)))dfs(x-a[x][y],y+a[x][y],6,cnt+1);
    if(z!=7&&(x+a[x][y]<=n&&y-a[x][y]>0&&(a[x+a[x][y]][y-a[x][y]]!=0||x+a[x][y]==n&&y-a[x][y]==m)))dfs(x+a[x][y],y-a[x][y],7,cnt+1);
    if(z!=8&&(x+a[x][y]<=n&&y+a[x][y]<=m&&(a[x+a[x][y]][y+a[x][y]]!=0||x+a[x][y]==n&&y+a[x][y]==m)))dfs(x+a[x][y],y+a[x][y],8,cnt+1);
    
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=m;j++)cin>>a[i][j];
        }
    dfs(1,1,0,0);
    cout<<minn;
	return 0;
}
2022/7/21 09:52
加载中...