当s
这样dp求解就可以了
还有,一定要注意,石子不一定是有序的,在这里卡了很久, ~~~
#include#include #include #include using namespace std; int l,s,t,m,ans; int a[151]; int b[151]; int dp[210000]; void dos() { int i,j,k; sort(a+1,a+m+1); for(i=1;i<=m;i++) { b[i]=b[i-1]+min(a[i]-a[i-1],150); } for(i=0;im)dp[i+j]=min(dp[i+j],dp[i]); } } ans=151; for(i=b[m]+1;i>l; cin>>s>>t>>m; for(i=1;i<=m;i++) { cin>>a[i]; } ans=0; if(s==t) { for(i=1;i<=m;i++) { if(a[i]%s==0)ans++; } cout<