Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
120953 罗恩祥 猫和老鼠 C++ 通过 100 0 MS 252 KB 1326 2024-01-21 14:05:41

Tests(10/10):


#include <bits/stdc++.h> using namespace std; char jz[11][11]; int main() { int n; cin >> n; while(n--) { int mx,my,cx,cy; for(int i = 1;i <= 10;i++) { for(int k = 1;k <= 10;k++) { cin >> jz[i][k]; if(jz[i][k] == 'M') { mx = i; my = k; } else if(jz[i][k] == 'C') { cx = i; cy = k; } } } int xx[5] = {-1,0,1,0}; int yy[5] = {0,1,0,-1}; int dm = 0,dc = 0; //北1 东2 南3 西 4 int step = 0; bool flag = 0; while(step < 100) { step++; if(cx == mx && cy == my) { flag = 1; cout << step-1 << endl; break; } int nx = xx[dm] + mx,ny = yy[dm] + my; if(jz[nx][ny] == '*' || nx == 0 || ny == 0 || nx == 11 || ny == 11) //转向 { dm += 1; dm %= 4; } else //否则位置移动 { mx += xx[dm]; my += yy[dm]; } int nx2 = xx[dc] + cx,ny2 = yy[dc] + cy; if(jz[nx2][ny2] == '*' || nx2 == 0 || ny2 == 0 || nx2 == 11 || ny2 == 11) { dc += 1; dc %= 4; } else { cx += xx[dc]; cy += yy[dc]; } } if(flag == 0) cout << -1 << endl; } /* 1 *...*..... ......*... ...*...*.. .......... ...*.C.... *.....*... ...*...... ..M......* ...*.*.... .*.*...... */ }


测评信息: