社区讨论

dp MLE求优化 玄关

学术版参与者 2已保存回复 9

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
9 条
当前快照
1 份
快照标识符
@mhj20yk2
此快照首次捕获于
2025/11/03 19:26
4 个月前
此快照最后确认于
2025/11/03 19:26
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;

int n, m;
string dp[2005][2005];
char a[2005][2005];
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	cin >> n >> m;
	for (int i = 1; i <= n; ++i) {
		string s;
		cin >> s;
		for (int j = 1; j <= m; ++j) 
			a[i][j] = s[j - 1];
	}
	dp[1][1] = a[1][1];
	for (int j = 1; j <= m; ++j) dp[1][j] = dp[1][j - 1] + a[1][j];
	for (int i = 1; i <= n; ++i) dp[i][1] = dp[i - 1][1] + a[i][1];
	for (int i = 2; i <= n; ++i) {
		for (int j = 2; j <= m; ++j) {
			dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + a[i][j];
		}
	}
	cout << dp[n][m];
	return 0;
}
1N,M20001\le N, M \le 2000
求滚动数组优化

回复

9 条回复,欢迎继续交流。

正在加载回复...