概述
永远的传送大门校门中门
先 按 照 甜 度 从 小 到 大 排 序 先按照甜度从小到大排序 先按照甜度从小到大排序
设 d p [ i ] 为 吃 i 块 蛋 糕 的 最 小 甜 度 设dp[i]为吃i块蛋糕的最小甜度 设dp[i]为吃i块蛋糕的最小甜度
那 么 第 i 块 蛋 糕 在 第 1 天 吃 , [ i − m + 1 , i ] 都 在 第 一 天 吃 那么第i块蛋糕在第1天吃,[i-m+1,i]都在第一天吃 那么第i块蛋糕在第1天吃,[i−m+1,i]都在第一天吃
[ 1 , i − m ] 吃 的 天 数 都 晚 了 1 , 所 以 加 上 他 们 的 前 缀 和 。 [1,i-m]吃的天数都晚了1,所以加上他们的前缀和。 [1,i−m]吃的天数都晚了1,所以加上他们的前缀和。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[200009],n,m,ans;
ll f[200009],sumn[200009];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
sort(a+1,a+1+n);
for(int i=1;i<=n;i++)
{
sumn+=a[i];
if(i<m) dp[i]=sumn;
else dp[i]=dp[i-m]+sumn;//前i-m天要多加1次
cout<<dp[i]<<" ";
}
return 0;
}
最后
以上就是友好音响为你收集整理的C. Sweets Eating(DP)的全部内容,希望文章能够帮你解决C. Sweets Eating(DP)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复