2 条题解
-
5
设f[i]表示解决完第i个学生的问题后,花费的最小精力,则
按照i和j变量进行分离,
和相关变量视为常数,和相关变量需要维护最小值
#include <bits/stdc++.h> #define ll long long using namespace std; const int N=1000005; ll a[N],n,m,k,s,t,d,f[N]; int main(){ cin>>n>>k>>d; for (int i=1;i<=n;++i) cin>>a[i]; f[1]=a[1]; ll mi=f[1]-a[1]*k; for (int i=2;i<=n;++i){ f[i]=mi+(a[i]*k-d); mi=min(mi,f[i]-a[i]*k); } cout<<f[n]; }
- 1
信息
- ID
- 528
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 239
- 已通过
- 122
- 上传者