题解
$dp[i]$表示前i个数字组成的最小答案,得到状态转移方程
$$ dp[i]={min(\\
dp[i-1]+a[i],\\
dp[i-c]+\sum_{j=i-c+1}^{i}a[i]-\min_{j=i-c+1}^{i}a[i]
\\) }
$$
维护动态集合(有不停的添加删除元素)的最小值用muiltset
总结
解题时要想到枚举思路,dp,二分,贪心等常用思路都要考虑到。当确定$dp[i]$的意义后,要大胆的写出方程。
代码
1 |
|
$dp[i]$表示前i个数字组成的最小答案,得到状态转移方程
$$ dp[i]={min(\\
dp[i-1]+a[i],\\
dp[i-c]+\sum_{j=i-c+1}^{i}a[i]-\min_{j=i-c+1}^{i}a[i]
\\) }
$$
维护动态集合(有不停的添加删除元素)的最小值用muiltset
解题时要想到枚举思路,dp,二分,贪心等常用思路都要考虑到。当确定$dp[i]$的意义后,要大胆的写出方程。
1 | #include "bits/stdc++.h" |