#include<iostream>
#include<cstring>

using namespace std;
int L;
int S,T,M;
int x[101];
int dp[100001];
int main(){
	cin>>L;
	cin>>S>>T>>M;
	memset(dp,0x3f,sizeof(dp));
	dp[0]=0;
	int flag;
	for(int i=1;i<=M;i++){
		cin>>flag;
		x[flag]=1;
	}
	for(int i=1;i<=L;i++){
	
		if(x[i]==1){
			 for(int j=S;j<=T&&i-j>=0;j++)
			    dp[i]=min(dp[i],dp[i-j]+1);
		}
		else{
			for(int j=S;j<=T&&i-j>=0;j++)
			dp[i]=min(dp[i],dp[i-j]);
		}
	}
	cout<<dp[L];
	return 0;
	
	
}

 只能过一部分样例,因为1e9太大,需要用到离散化

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐