警示c语言蒟蒻
查看原帖
警示c语言蒟蒻
1322187
Quattro_Captain楼主2024/4/23 19:59
#include<stdio.h>
#include<queue>
#include<math.h>
#include<iostream>
using namespace std;
struct map{
    char what;
    int x,y;
    int power;
    int sum;
};
map ma[1005][1005],t;
queue <map> q;
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
int n,k;

int main(){
    cin >> n >> k;
    for(int i = 0;i < n;i++)
		for(int j = 0;j < n;j++){
            cin >> ma[i][j].what;
            if(ma[i][j].what=='X') ma[i][j].power=0;
            else ma[i][j].power=-1;
            ma[i][j].x=i;
            ma[i][j].y=j;
            ma[i][j].sum=0;
        }
    // char ch;
    // scanf("%d%d",&n,&k);
    // for(int i = 0; i < n; i++){
    //     for(int j = 0; j < n; j++){
    //         scanf("%1c",&ch);
    //         if(ch=='\n') scanf("%1c",&ch);
    //         ma[i][j].what=ch;
    //         ma[i][j].x=i;
    //         ma[i][j].y=j;
    //         if(ma[i][j].what=='X') ma[i][j].power=0;
    //         else ma[i][j].power=-1;
    //         ma[i][j].sum=0;
    //     }
    // }
    ma[0][0].power=0;
    q.push(ma[0][0]);
    while(!q.empty()){
        t = q.front();
        q.pop();
        if(t.x==n-1&&t.y==n-1){
            printf("%d",t.sum);
            return 0;
        }
        for(int i = 0; i < 4; i++){
                int nx = t.x + dx[i],ny = t.y + dy[i];
                if(nx >= 0 && nx < n && ny >= 0 && ny < n){
                    if((ma[nx][ny].what == '.' || ma[nx][ny].what == 'X') && ma[t.x][t.y].power > ma[nx][ny].power){
                        ma[nx][ny].power = max(0,ma[t.x][t.y].power - 1);
                        ma[nx][ny].sum = t.sum + 1;
                        q.push(ma[nx][ny]);
                    }else if(ma[nx][ny].what == '%' && ma[t.x][t.y].power > ma[nx][ny].power){
                        ma[nx][ny].power = k;
                        ma[nx][ny].sum = t.sum + 1;
                        q.push(ma[nx][ny]);
                    }
                }
        }
    }
    printf("-1");
    return 0;
}

慎用scanf() 如果你也像我一样用scanf()在本地和洛谷ide上正常运行一提交就满江红,那真是……太酷(shabi)啦!


2024/4/23 19:59
加载中...