Trong bàn cờ Vua,có mấy quân Sĩ?
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Tham Khảo:
#include <bits/stdc++.h>
using namespace std;
bool v(int y, int x) {
return 1 <= y && y <= 8 && 1 <= x && x <= 8;
}
int m(int y, int x, int ty, int tx) {
if (!v(y, x) || !v(ty, tx)) {
return -1;
}
deque<pair<int, pair<int, int>>> q;
q.push_back({y, {x, 0}});
bool vis[9][9] = {false};
vis[y][x] = true;
int dx[] = {-2, -2, 2, 2};
int dy[] = {-2, 2, -2, 2};
while (!q.empty()) {
int cy = q.front().first;
int cx = q.front().second.first;
int s = q.front().second.second;
q.pop_front();
if (cy == ty && cx == tx) {
return s;
}
for (int i = 0; i < 4; ++i) {
int ny = cy + dy[i];
int nx = cx + dx[i];
if (v(ny, nx) && !vis[ny][nx]) {
q.push_back({ny, {nx, s + 1}});
vis[ny][nx] = true;
}
}
}
return -1;
}
int main() {
int y, x, ty, tx;
cin >> y >> x >> ty >> tx;
cout << m(y, x, ty, tx) << endl;
return 0;
}
Tham khảo: Bài toán tám quân hậu – Wikipedia tiếng Việt
Dưạ vào dạng này
Bài toán tám quân hậu là bài toán đặt tám quân hậu trên bàn cờ vua kích thước 8×8 sao cho không có quân hậu nào có thể "ăn" được quân hậu khác, hay nói khác đi không quân hậu nào có để di chuyển theo quy tắc cờ vua. Màu của các quân hậu không có ý nghĩa trong bài toán này. Như vậy, lời giải của bài toán là một cách xếp tám quân hậu trên bàn cờ sao cho không có hai quân nào đứng trên cùng hàng, hoặc cùng cột hoặc cùng đường chéo. Bài toán tám quân hậu có thể tổng quát hóa thành bài toán đặt n quân hậu trên bàn cờ n×n(n ≥ 4).
Để làm được bài này, ta cần chọn những vị trí để vị trí đó và điểm G thẳng hàng và nằm khác phía với điểm D.
Vậy ta phải đặt quân ở các vị trí A,B,C
Đáp số: \(A,B,C\)
4
tik mk nha bạn!
cờ tướng mới có quân sĩ