解题思路: 注意越界判断以及方向符号改变
注意事项:
参考代码:
#include<iostream>
using namespace std;
const int inf = 1e3;
int M,N;
int a,b,d,p;
char c;
char toward[4] = {'U','R','D','L'};
int arr[inf][inf];
void Init(){
cin>>M>>N;
for(int i=0;i<M;i++){
for(int j=0;j<N;j++){
cin>>arr[i][j];
}
}
cin>>a>>b>>c>>d;
for(int i=0;i<4;i++){
if(toward[i]==c){
p = i;
break;
}
}
}
void compute(){
while(d>0){
if(arr[a][b]==0){
arr[a][b]=1;
if(toward[p]=='L' && (M-1)!=a) a++;
if(toward[p]=='U' && b!=0) b--;
if(toward[p]=='R' && a!=0) a--;
if(toward[p]=='D' && (N-1)!=b) b++;
if(p==0){
p=4;
}
p = (p-1)%4;
}else{
arr[a][b]=0;
if(toward[p]=='L' && a!=0) a--;
if(toward[p]=='U' && (N-1)!=b) b++;
if(toward[p]=='R' && (M-1)!=a) a++;
if(toward[p]=='D' && b!=0) b--;
p = (p+1)%4;
}
d--;
}
cout<<a<<" "<<b<<endl;
}
int main(){
Init();
compute();
return 0;
}
0.0分
1 人评分
大神老白 (C语言代码)浏览:768 |
P1002 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:827 |
兰顿蚂蚁 (C++代码)浏览:1160 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:1314 |
WU-陶陶摘苹果2 (C++代码)浏览:1018 |
a+b浏览:452 |
printf基础练习2 (C语言代码)浏览:547 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1108 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:801 |