求调
  • 板块灌水区
  • 楼主wudi12
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/2 21:18
  • 上次更新2024/11/3 08:35:59
查看原帖
求调
1399778
wudi12楼主2024/11/2 21:18

题目链接:https://www.luogu.com.cn/problem/P11228?contestId=209924

代码:

#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;
}
2024/11/2 21:18
加载中...