B-Problem B. sophistry_2021 CCPC 新疆省赛(重现赛)@KFC_ovo (nowcoder.com)
//当需要后边的信息时,就只能从后往前推
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+10; //线性dp ll n,d,m; //发言n天 ll a[N]; ll dp[N]; //dp[i]表示到第i天s时,造成的最大伤害 int main() { ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); cin>>n>>d>>m; for(ll i=1;i<=n;i++) cin>>a[i]; for(ll i=n;i>=1;i--) { if(a[i]<=m) dp[i]=dp[i+1]+a[i]; else { //当需要后边的信息时,就只能从后往前推 dp[i]=max(dp[i+1],dp[i+d+1]+a[i]); } } cout<<dp[1]<<endl; return 0; }
标签:int,ll,cin,long,2023.4,tie,dp From: https://www.cnblogs.com/-Rebecca/p/17278103.html