| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 90564 | sh25_shenpy | 能量项链 | C++ | 通过 | 1 MS | 460 KB | 617 | 2026-06-06 13:12:55 |
#include <cstdio> #define max(a, b) (((a) > (b)) ? (a) : (b)) int N; int a[210]; int dp[210][210]; int main() { scanf("%d", &N); for(int i = 1; i <= N; i++) scanf("%d", &a[i]); for(int i = 1; i <= N; i++) a[i + N] = a[i]; int ans = 0; for(int len = 2; len <= N; len++) { for(int i = 1; i <= 2 * N - len + 1; i++) { int j = i + len - 1; for(int k = i; k <= j - 1; k++) dp[i][j] = max(dp[i][j], dp[i][k] + dp[k + 1][j] + a[i] * a[j + 1] * a[k + 1]); ans = max(ans, dp[i][j]); } } printf("%d", ans); return 0; }