100 Accepted
# | 状态 分数 | 耗时 | 内存占用 |
---|
#1 | Accepted 10 | 45ms | 7.8 MiB |
#2 | Accepted 10 | 65ms | 7.8 MiB |
#3 | Accepted 10 | 16ms | 7.5 MiB |
#4 | Accepted 10 | 1ms | 7.8 MiB |
#5 | Accepted 10 | 2ms | 7.5 MiB |
#6 | Accepted 10 | 67ms | 7.5 MiB |
#7 | Accepted 10 | 44ms | 7.8 MiB |
#8 | Accepted 10 | 101ms | 7.8 MiB |
#9 | Accepted 10 | 3ms | 7.8 MiB |
#10 | Accepted 10 | 87ms | 7.8 MiB |
代码
#include <iostream>
using namespace std;
int main(void){
int n,m,a[105][105]={},now=1;
char path[105][105];
string lqbs="LQBS";
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
cin>>path[i][j];
if(path[i][j]=='L')
a[i][j]=1;
}
while(1){
int flag=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]==now){
if(path[i-1][j]==lqbs[now%4]){
a[i-1][j]=now+1;
flag=1;
}
else if(path[i+1][j]==lqbs[now%4]){
a[i+1][j]=now+1;
flag=1;
}
else if(path[i][j-1]==lqbs[now%4]){
a[i][j-1]=now+1;
flag=1;
}
else if(path[i][j+1]==lqbs[now%4]){
a[i][j+1]=now+1;
flag=1;
}
}
if(flag==0)
break;
now++;
if(now>=(n+1)*(m+1)){
cout<<-1;
return 0;
}
}
cout<<now/3;
}
信息
- 递交者
- 题目
- LQ1074 蓝桥杯赛迷宫
- 比赛
- 蓝桥杯省赛历年真题
- 语言
- C++ 98
- 递交时间
- 1 年前
- 评测时间
- 1 年前
- 分数
- 100
- 总耗时
- 429ms
- 峰值内存
- 7.8 MiB