Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
156360 李树强 合并石子1 C++ 解答错误 20 3 MS 3296 KB 832 2024-07-17 10:40:32

Tests(1/5):


#include<iostream> using namespace std; long long n, ls[410], f1[810][810], f2[810][810], S[410], ans1, ans2; const long long inf = 1e16+1e15; int main(){ ans1 = inf; ans2 = -inf; cin >> n; for(int i = 1; i <= n; i++){ cin >> ls[i]; S[i] = ls[i] + S[i-1]; } for(int i = n+1; i <= n*2; i++){ ls[i] = ls[i-n]; S[i] = ls[i] + S[i-1]; } for(int len = 2; len <= n; len++){ for(int i = 1; i <= n*2; i++){ int j = i + len - 1; f1[i][j] = inf; for(int k = i; k < j; k++){ f1[i][j] = min(S[j] - S[i-1] + f1[i][k] + f1[k+1][j], f1[i][j]); f2[i][j] = max(S[j] - S[i-1] + f2[i][k] + f2[k+1][j], f2[i][j]); } } } for(int st = 1; st <= n; st++){ int ed = st + n - 1; ans1 = min(ans1, f1[st][ed]); ans2 = max(ans2, f2[st][ed]); } cout << ans1; return 0; }


测评信息: