布什戈门,这题能暴力做出来啊
查看原帖
布什戈门,这题能暴力做出来啊
1107543
yezhufenglv楼主2024/9/12 10:48

想了半天怎么优化暴力,就是没想出来,就想着先把暴力的写一下,谁知道提交上去就过了。 当然,还是要学习优化一下。 建议增加数据卡一下暴力。

#include <iostream>
using namespace std;
const int N = 1010;
char map[N][N];
int main()
{
	int n, m; cin >> n >> m;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			cin >> map[i][j];
	int res = 0;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			if (map[i][j]=='F')
			{
				//从此处开始遍历,限制最远能到达的列
				int mxj = m;
				for (int ti = i; ti <= n; ti++)
				{
					for (int tj = j; tj <= mxj; tj++)      //限制最远的列
					{
						if (map[ti][tj] == 'R')
						{
							mxj = tj - 1;                 //最远的符合要求的列
							break;
						}
						res = max(res, (ti - i + 1) * (tj - j + 1));
						//每走一次就算一次
					}
				}
			}
		}
	}
	cout << 3 * res << endl;
	return 0;
}

2024/9/12 10:48
加载中...