Editorial for 仁慈的導師3
記住 只 在沒有思路時使用題解,不要複製貼上代碼。請尊重題目和題解的作者。
在真正親自解開題目前提交官方題解的代碼是可以封禁的罪行。
在真正親自解開題目前提交官方題解的代碼是可以封禁的罪行。
作者:
參考code
#include<bits/stdc++.h>
#define ll0 (ll)0
using namespace std;
typedef long long ll;
int main() {
ll n; cin >> n;
ll sum = 0;
vector<ll> dp(n), v(n);
for(int i = 0;i < n;i++) {
cin >> v[i];
sum += v[i];
}
if(n == 1) {
cout << 0;
return 0;
}else if(n == 2) {
cout << min(v[0], v[1]);
return 0;
}else if(n == 3) {
cout << min(v[0] + v[2], v[1]);
return 0;
}
dp[0] = v[0];
dp[1] = v[1];
dp[2] = max(ll0, v[0]) + v[2];
ll ans = max({dp[0], dp[1], dp[2]});
for(int i = 3;i < n;i++) {
dp[i] = max(dp[i-2], dp[i-3]) + v[i];
ans = max(ans, dp[i]);
}
cout << sum-ans;
return 0;
}
留言