社区讨论
求调
灌水区参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m306xt3y
- 此快照首次捕获于
- 2024/11/02 21:20 去年
- 此快照最后确认于
- 2025/11/04 15:30 4 个月前
题目链接:https://www.luogu.com.cn/problem/P11228?contestId=209924
代码:
CPP#include<iostream>
using namespace std;
int d = 0;
int x, y;
char map1[1000][1000];
int t, k;
int cnt = 1;
a
int dt(int x0, int y0, int d) {
if (k == 0)
{
return cnt;
}
cout << x0 << " " << y0 << " " << d << endl;
if (d == 0)
{
if (y0 + 1 > y || map1[x0][y0 + 1] == 'x') {
k--;
dt(x0, y0, (d + 1) % 4);
}
else {
k--;
cnt++;
dt(x0, y0++, d);
}
}
else if (d == 1)
{
if (x0 + 1 > x || map1[x0 + 1][y0] == 'x') {
k--;
dt(x0, y0, (d + 1) % 4);
}
else {
k--;
cnt++;
dt(x0++, y0, d);
}
}
else if (d == 2)
{
if (y0 - 1 < y || map1[x0][y0 - 1] == 'x') {
k--;
dt(x0, y0, (d + 1) % 4);
}
else {
k--;
cnt++;
dt(x0, y0--, d);
}
}
else
{
if (x0 - 1 < x || map1[x0 - 1][y0] == 'x') {
k--;
dt(x0, y0, (d + 1) % 4);
}
else {
k--;
cnt++;
dt(x0--, y0, d);
}
}
}
int main()
{
cin >> t;
for (int i = 1; i <= t; i++) {
int x0, y0;
cin >> x >> y >> k >> x0 >> y0 >> d;
for (int x1 = 0; x1 < x; x1++)
{
for (int y1 = 0; y1 < y; y1++)
{
cin >> map1[x1][y1];
}
}
dt(x0, y0, d);
cout << cnt << endl;
cnt = 0;
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...