比赛 csp2025模拟练习3 评测结果 AAAAAAAAA
题目名称 Symmetric Mountains 最终得分 100
用户昵称 淮淮清子 运行时间 0.588 s
代码语言 C++ 内存使用 32.99 MiB
提交时间 2025-10-30 09:12:02
显示代码纯文本
#include<iostream>
using namespace std;

const int MAXN = 5005;
int dp[MAXN][MAXN], h[MAXN];
int ans[MAXN], n;

int main(){
	freopen("Mountains.in", "r", stdin);
	freopen("Mountains.out", "w", stdout);
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> n;
    for(int i = 1;i <= n;i ++){
    	cin >> h[i];
	}
    for(int len = 2;len <= n;len ++){
        ans[len] = 1e9;
        for(int i = 1;i <= n - len + 1;i ++){
        	int j = i + len - 1;
            dp[i][j] = dp[i + 1][j - 1] + abs(h[i] - h[j]);
            ans[len] = min(ans[len],dp[i][j]);
        }
    }
    for(int i = 1;i <= n;i ++) cout << ans[i] << ' ';
    return 0;
}