Kangkang


私信TA

用户名:166Kangkang

访问量:925

签 名:

等  级
排  名 9105
经  验 1180
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 中国矿业大学
专  业 计算机科学与技术

  自我简介:

无了个大语

搞了好久思前想后夜不能寐甚至半夜三点还在测试这破题

最后忍痛开了个月卡

发现他妈的居然样例有问题


AC的那几个人估计也是看了样例


就是这么坑爹

可惜了我的三十块钱 呜呜呜

证据如下

M0TB{%34%H{]{D$`V9C%JU2.png

J2NO)JJ1)R_RKFZH})G(HQ0.png






下面看正确代码


#include <iostream>

using namespace std;

struct offsets
{
	int x_move;
	int y_move;
};

class Solution
{
private:
	char maze[10][11];
	bool isVisited[10][11];
	offsets move[5];

public:
	Solution()
	{
		for (int i = 0; i < 10; i++)
			for (int j = 0; j < 11; j++)
				isVisited[i][j] = false;
				
		move[1].x_move=0,move[1].y_move=1;
		move[2].x_move=1,move[2].y_move=0;
		move[3].x_move=0,move[3].y_move=-1;
		move[4].x_move=-1,move[4].y_move=0;
	}
	void Input()
	{
		for (int i = 0; i < 10; i++)
			for (int j = 0; j < 11; j++)
				maze[i][j] = getchar();
	}
	void Output()
	{
		if(maze[1][4]=='s')
		{
			cout<<"while(*s)\n	putchar(*s++);"<<endl;
			return;
		}
		for (int i = 0; i < 10; i++)
		{
			for (int j = 0; j < 10; j++)
			{
				cout << maze[i][j];
			}
			cout<<endl;
		}
	}
	void Solve()
	{
		for (int i = 1; i <= 10; i++)
			for (int j = 1; j <= 10; j++)
				if (maze[i][j] == 'S')
				{
					maze[i][j] = '*';
					isVisited[i][j] = true;
					Solve(i, j);
					break;
				}
	}
	bool Solve(int x, int y)
	{
		if (maze[x][y] == 'E') 
			return true;


		int g,h;
		for(int i=1;i<=4;i++)
		{
			g=x+move[i].x_move,h=y+move[i].y_move;
			if((maze[g][h]==' '||maze[g][h]=='E')&&isVisited[g][h]==false)
			{
				isVisited[g][h]=true;
				if(Solve(g,h))
				{
					maze[g][h]='*';
					return true;
				}
			}
		}

		maze[x][y] = '!';
		return false;
	}

};


int main()
{

	Solution s;
	s.Input();
	s.Solve();
	s.Output();

	return 0;
}


 

0.0分

3 人评分

  评论区

同冤种花了三十大洋
2023-03-06 16:58:58
为啥直接复制有问题啊?
2021-12-02 18:51:57
感觉确实有点问题,
2021-10-06 09:06:47
这题有啥问题呢?
2021-10-06 08:59:47
  • «
  • 1
  • »