萌新刚学 OI,求调代码

#include <iostream>
#include <vector>
using namespace std;
int a[1145][1419];
int main() {
	auto small = [&](vector<pair<char, pair<int, int> > > x, vector<pair<char, pair<int, int> > > y) -> bool{
		if (x.size() != y.size()) return x.size() < y.size();
		int len = x.size();
		for (int i = 0; i < len; ++i) {
			if (x[i].second.first != y[i].second.first) return x[i].second.first < y[i].second.first;
		}
		return 0;
	};
	auto Getnum = [&]() {
		char c = getchar();
		while (c != 'X' && c != 'O') c = getchar();
		return c == 'O';
	};
	int n, m;
	for (int _ = 1; ; ++_) {
		scanf("%d%d", &n, &m);
		if (!(n || m)) break;
		if (_ != 1) puts("");
		vector<vector<vector<pair<char, pair<int, int> > > > > dp(n + 1, vector<vector<pair<char, pair<int, int> > > >(m + 1));
		for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) a[i][j] = Getnum();
		int x, y;
		scanf("%d%d", &x, &y);
		for (int i = 1; i <= m; ++i) if (a[x][i] == 1) dp[x][i].push_back({i + 'A' - 1, {x, x}});
		for (int i = x + 1; i <= y; ++i)
			for (int j = 1; j <= m; ++j) {
				if (a[i][j] == 0) continue;
				for (int k = 1; k <= m; ++k) {
					if (a[i - 1][k] == 1) {
						if (j == k) {
							if (dp[i][j].empty() || dp[i][j].size() > dp[i - 1][j].size()) {
								dp[i][j] = dp[i - 1][j];
								pair<char, pair<int, int> > bk = dp[i][j].back();
								dp[i][j].pop_back();
								bk.second.second++;
								dp[i][j].push_back(bk);
							}
						} else {
							if (dp[i][j].empty() || dp[i][j].size() - 1 > dp[i - 1][k].size()) {
								dp[i][j] = dp[i - 1][k];
								dp[i][j].push_back({k + 'A' - 1, {j, j}});
							}
						}
					}
				}
			}
		int ans = 0;
		for (int i = 1; i <= m; ++i) {
			if (a[y][i]) {
				if (ans == 0 || small(dp[y][i], dp[y][ans])) {
					ans = i;
				}
			}
		}
		printf("Case %d:\n\n", _);
		for (const auto & i : dp[y][ans]) {
			printf("%c: %d-%d\n", i.first, i.second.first, i.second.second);
		}
	}
	return 0;
}

题目,样例不输出。

3 个赞

这代码长度叫萌新???

5 个赞

我是萌新qwq

5 个赞

不长啊,2kb 都不到

5 个赞

啊得你洛谷都有32道NOI的了

5 个赞

我超的题解

5 个赞

《萌新》《刚学》

5 个赞

我确实刚学啊/kx

5 个赞

你的学习能力真强 :+1:

5 个赞

我刚学 1ms(

5 个赞

image
今天刚好可以请教一下

5 个赞


哪来的题解???

5 个赞

5 个赞

? ??

5 个赞

2022年10月26日注册的这叫萌新

5 个赞

咋成 16 号了

5 个赞

《 洛 谷 排 名 5 0 的 萌 新 》

7 个赞

都是抄的题解!

6 个赞

这题你是咋么打成这样的

6 个赞

chatgpt

6 个赞