SK


私信TA

用户名:1973231998

访问量:20043

签 名:

成功只是一时的,失败才是主旋律,笑着面对失败是主要的。

等  级
排  名 258
经  验 5901
参赛次数 0
文章发表 59
年  龄 0
在职情况 学生
学  校 *
专  业

  自我简介:

解题思路:
照着题目做

参考代码:

#include<bits/stdc++.h>
using namespace std;
struct m
{
	int seat;
	char x;
}mapp[100][100];        //记录位置
char ant;              //记录方向
void f(const char s)   //旋转函数
{
	if (s == 'L')
	{ 
		if (ant == 'L') ant = 'D';
		else if (ant == 'D')ant = 'R';
		else if (ant == 'R')ant = 'U';
		else ant = 'L';
	}
	else
	{
		if (ant == 'L') ant = 'U';
		else if (ant == 'D')ant = 'L';
		else if (ant == 'R')ant = 'D';
		else ant = 'R';
	}
}
void fxy(int& i, int& j) //每一步的操作
{
	if (mapp[i][j].seat == 0)
	{
		f('L');
		mapp[i][j].seat = 1;
		mapp[i][j].x = '0';
		if (ant == 'L')
		{
			j--;
			mapp[i][j].x = ant;
		}
		else if (ant == 'D')
		{
			i++;
			mapp[i][j].x = ant;
		}
		else if (ant == 'R')
		{
			j++;
			mapp[i][j].x = ant;
		}
		else
		{
			i--;
			mapp[i][j].x = ant;
		}
	}
	else
	{
		f('R');
		mapp[i][j].seat = 0;
		mapp[i][j].x = '0';
		if (ant == 'L')
		{
			j--;
			mapp[i][j].x = ant;
		}
		else if (ant == 'D')
		{
			i++;
			mapp[i][j].x = ant;
		}
		else if (ant == 'R')
		{
			j++;
			mapp[i][j].x = ant;
		}
		else
		{
			i--;
			mapp[i][j].x = ant;
		}
	}

}
int main()
{
	int m, n, i=0, j=0,step; //i,j记录位置
	cin >> m >> n;
	for (int h = 0; h < m; h++)
	{
		for (int l = 0; l < n; l++)
		{
			cin >> mapp[h][l].seat;
		}
	}
	cin >> i >> j;
	cin >> ant;
	mapp[i][j].x = ant;
	cin >> step;
	while (step--)
	{
		fxy(i,j);
	}
	cout << i << " " << j;
}


 

0.0分

2 人评分

  评论区

  • «
  • »