记录详情

Accepted

foo.c: In function 'main':
foo.c:24:4: warning: ignoring return value of 'scanf', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%c",&a[i][j]);
    ^~~~~~~~~~~~~~~~~~~~
# 状态 耗时 内存占用
#1 Accepted 1ms 280.0 KiB
#2 Accepted 1ms 284.0 KiB
#3 Accepted 1ms 284.0 KiB
#4 Accepted 1ms 256.0 KiB
#5 Accepted 1ms 284.0 KiB

代码

#include<stdio.h>
char a[10][10];
int v[10][10];
int dirx[4]={1,0,-1,0};
int diry[4]={0,1,0,-1};
int flag=0;
struct point{
	int x;
	int y;
	int step;
	int pre;//用于赋值前一个位置的下标 
}path[100];
struct queue{
    int front;
    int rear;
}r;//申请队列 

int main(){
	//得出一个地图 
	int i,j;
	for(i=0;i<10;i++){
		for(j=0;j<10;j++){
			v[i][j]=0;
			scanf("%c",&a[i][j]);
			if(a[i][j]=='\n')
			    j=j-1; 
		}
	}
	//BFS
	struct point start;
	start.x=0;  start.y=0;  start.step=0; start.pre=0;
	r.front=0;  r.rear=0;
	path[r.rear]=start;
	r.rear++;
	v[start.x][start.y]=1;
	while(r.front!=r.rear){
		int x=path[r.front].x;
		int y=path[r.front].y;
		if(x==9&&y==9){
			flag=1;
			break;
		}
		int m;
		struct point temp;//设置一个暂时的储存区 
		for(m=0;m<4;m++){
			int tx=x+dirx[m]; int ty=y+diry[m];
			if(a[tx][ty]=='.'&&v[tx][ty]==0){
				temp.x=tx; temp.y=ty;
				temp.step=path[r.front].step+1;
				temp.pre=r.front;//赋值前一步的下标 
				path[r.rear++]=temp;
				v[tx][ty]=1;
			}
		}
		r.front++;//要出队队首 
	} 
	if(flag==1)printf("Yes\n");
	else printf("No\n");
	return 0;
} 

信息

递交者
类型
递交
题目
P1001 hitwh 2019 新生赛 B lxdlam 和他的迷宫
语言
C
递交时间
2020-12-22 20:05:32
评测时间
2020-12-22 20:05:32
评测机
分数
100
总耗时
5ms
峰值内存
284.0 KiB