被卡常0.14s求优化
  • 板块P4147 玉蟾宫
  • 楼主Vitamin_B
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/5/26 14:44
  • 上次更新2024/5/26 16:24:30
查看原帖
被卡常0.14s求优化
743373
Vitamin_B楼主2024/5/26 14:44

rt,最慢的点1.14s,die码在此:

//# pragma GCC optimize("Ofast,no-stack-protector")
//
//# pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

# include <bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef pair <int, int> pii;

typedef int arr[1005][1005];

int n, m, t, maxx;

arr l, r, L, R, u;

char a[1005][1005];

int main () {

	ios::sync_with_stdio (0);

	cin.tie (0);

	cout.tie (0);

	cin >> n >> m;

	for (int i = 1; i <= n; ++ i) {

		for (int j = 1; j <= m; ++ j) {

			cin >> a[i][j];

			if (a[i][j] == 'F') {

				l[i][j] = l[i][j - 1] + 1;

				u[i][j] = u[i - 1][j] + 1;

				if (a[i - 1][j] == 'F')
					L[i][j] = min (L[i - 1][j], l[i][j]);
				else
					L[i][j] = l[i][j];

			}

			for (int j = m; j; -- j)
				if (a[i][j] == 'F') {

					r[i][j] = r[i][j + 1] + 1;

					if (a[i - 1][j] == 'F')
						R[i][j] = min (R[i - 1][j], r[i][j]);
					else
						R[i][j] = r[i][j];

					maxx = max (maxx, (R[i][j] + L[i][j] - 1) * u[i][j]);

				}

		}

	}

	cout << 3 * maxx;

	return 0;

}
2024/5/26 14:44
加载中...