本文共 610 字,大约阅读时间需要 2 分钟。
#includeusing namespace std;typedef long long ll;const int maxn=2e3+5;int ans=0,n,h,l,r,dp[maxn][maxn],a[maxn];int main(){ scanf("%d%d%d%d",&n,&h,&l,&r); for(int i=1;i<=n;++i) scanf("%d",&a[i]); dp[0][0]=1; for(int i=1;i<=n;++i) for(int j=0;j =l&&j<=r) dp[i][j]=max(dp[i][j],dp[i-1][(j-a[i]+h)%h]+(dp[i-1][(j-a[i]+h)%h]>0?1:0)), dp[i][j]=max(dp[i][j],dp[i-1][(j-a[i]+1+h)%h]+(dp[i-1][(j-a[i]+1+h)%h]>0?1:0)); else dp[i][j]=max(dp[i][j],dp[i-1][(j-a[i]+h)%h]),dp[i][j]=max(dp[i][j],dp[i-1][(j-a[i]+1+h)%h]); ans=max(ans,dp[i][j]); } printf("%d\n",ans-1);}
转载地址:http://reewz.baihongyu.com/