Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
107100 wwzzzzzz 迷宫问题 C++ 解答错误 13 1986 MS 304 KB 1141 2023-10-19 13:48:33

Tests(2/15):


#include <bits/stdc++.h> #define endl '\n' using namespace std; bool mp[114][114]; bool mark[114][114]; bool gx[] = {1,-1,1,-1,0,-1,1,0}; bool gy[] = {1,-1,-1,1,-1,0,0,1}; int n,m; bool check(int xx, int yy) { return (0<=xx&&xx<=n&&0<=yy&yy<=n); } int ans1[114514],ans2[114514]; void dfs(int step, int xx, int yy) { if(xx==n&&yy==m) { // cout << "0 0\n"; printf("0 0\n"); for(int i = 1; i <= n; i++) { // cout << ans1[i] << " " << ans2[i] << endl; printf("%d %d\n",ans1[i],ans2[i]); } exit(0); } for(int i = 0; i < 8; i++) { for(int j = 0; j < 8; j++) { if(mp[xx+gx[i]][yy+gy[i]]||(!check(xx+gx[i],yy+gy[i]))||mark[xx+gx[i]][yy+gy[i]]) { continue; } // cout << "simida" << endl; mark[xx+gx[i]][yy+gy[i]]=true; ans1[step+1]=xx+gx[i]; ans2[step+1]=yy+gy[i]; dfs(step+1,xx+gx[i],yy+gy[i]); mark[xx+gx[i]][yy+gy[i]]=false; } } } signed main() { cin >> n >> m; for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { // cin >> mp[i][j]; scanf("&d",mp[i][j]); } } dfs(0,0,0); cout << "-1" << endl; return 0; }


测评信息: