This commit is contained in:
HuangHai
2025-08-30 18:35:01 +08:00
commit 1f397eca87
6258 changed files with 1487241 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
#include <bits/stdc++.h>
using namespace std;
/*
һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>壺
<20><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD>Ϊ<EFBFBD><CEAA>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԴﵽĿ<EFB5BD>ꡣ
<20><><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD>ijһ<C4B3><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>ѡ<EFBFBD>񲢲<EFBFBD><F1B2A2B2>Ż<EFBFBD><C5BB>ﲻ<EFBFBD><EFB2BB>Ŀ<EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD>˻<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD>ͨ<EFBFBD><CDA8>
<20>˻<EFBFBD><CBBB><EFBFBD><EFBFBD>ߵļ<DFB5><C4BC><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>״̬<D7B4>ĵ<EFBFBD><C4B5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ݵ㡱<DDB5><E3A1B1>
<20>û<EFBFBD><C3BB>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʹ<EFBFBD>õݹ鷽<DDB9><E9B7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>̽<EFBFBD>ͻ<EFBFBD><CDBB>ݡ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼·<EFBFBD><EFBFBD>
1.<2E><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ǽ<EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>У<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ͨ·<CDA8><C2B7>
<20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>Ǹ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>Ƿ񱻷<C7B7><F1B1BBB7>ʹ<EFBFBD><CAB9><EFBFBD>
2.<2E>Թ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD>򣺶<EFBFBD><F2A3BAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3.<2E><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ںͳ<DABA><CDB3>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>
ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD>λ<EFBFBD>ã<EFBFBD>һֱ<D2BB>ݹ<EFBFBD><DDB9><EFBFBD>ȥ<EFBFBD><C8A5>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>ͨ<EFBFBD><CDA8><EFBFBD>ݣ<EFBFBD>
*/
// Ĭ<><C4AC><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const int XLEN = 14, YLEN = 17;
int m, p; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int maze[XLEN + 2][YLEN + 2]; // <20>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
int mark[XLEN + 2][YLEN + 2]; // <20><><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>,a<><61>b<EFBFBD><62>x,y<><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
struct Offsets {
int a, b;
};
// <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰ѷ<D4B0><D1B7><EFBFBD>ȥ<EFBFBD><C8A5>
Offsets direction[8] =
{{-1, 0},
{-1, 1},
{0, 1},
{1, 1},
{1, 0},
{1, -1},
{0, -1},
{-1, -1}
};
// <20><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵݹ<C4B5><DDB9>㷨
bool seekPath(int x, int y) {
// <20><><EFBFBD>Թ<EFBFBD>ijһλ<D2BB><CEBB>[i][j]<5D><>ʼ<EFBFBD><CABC>Ѱ<EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>[m][p]<5D><>һ<EFBFBD><D2BB>·<EFBFBD><C2B7>,<2C><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true
int i, g, h; // g, h<><68>¼λ<C2BC><CEBB><EFBFBD><EFBFBD>Ϣ
if (x == m && y == p) // m<><6D>p<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return true;
// ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(x, y)<29><>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (i = 0; i < 8; i++) {
g = x + direction[i].a;
h = y + direction[i].b;
// <20><><EFBFBD><EFBFBD>һλ<D2BB><CEBB>Ѱ<EFBFBD><D1B0>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>·<EFBFBD><C2B7>
if (maze[g][h] == 0 && mark[g][h] == 0) { // <20><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>
mark[g][h] = 1; // <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ѷ<EFBFBD><D1B7>ʹ<EFBFBD>
if (seekPath(g, h)) { // <20>ݹ<EFBFBD><DDB9><EFBFBD>̽
cout << "(" << g << ", " << h << ")<29><>"; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return true;
}
}
// <20><><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽ͨ<CCBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>·<EFBFBD><C2B7>
}
return false; // <20>Ҳ<EFBFBD><D2B2><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>·<EFBFBD><C2B7>
}
int main(int argc, const char *argv[]) {
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
freopen("./data.txt", "r", stdin);
int i, j, x, y;
// <20><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>
for (i = 0; i < XLEN; i++) {
for (j = 0; j < YLEN; j++) {
cin >> maze[i][j];
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mark[i][j] = 0;
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cin >> x >> y;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cin >> m >> p;
// <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD>ʼ
mark[x][y] = 1;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9>ĵݹ<C4B5><DDB9>㷨
if (seekPath(x, y)) // <20>ɹ<EFBFBD>
{
cout << "(" << x << ", " << y << ")" << endl;
} else {
cout << "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << endl;
}
return 0;
}