求助

P1052 [NOIP2005 提高组] 过河

@[唐路凌最可爱](/user/61940) 甩个以前写的AC代码给你,自己找找哪里有问题 ```cpp #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; int l,s,t,m,a[105],f[30000],num,dp[30000],ans=1<<30; int main() { scanf("%d %d %d %d",&l,&s,&t,&m); for(int i=1; i<=m; i++) scanf("%d",&a[i]); a[m+1]=l; sort(a,a+m+2); for(int i=1; i<=m+1; i++) { if(a[i]-a[i-1]>=t) num+=(a[i]-a[i-1])%t+t; else num+=a[i]-a[i-1]; f[num]=1; } f[0]=0,f[num]=0; memset(dp,0x3f,sizeof(dp)); dp[0]=0; for(int i=0; i<=num+t; i++) for(int j=s; j<=t&&i-j>=0; j++) dp[i]=min(dp[i],dp[i-j]+f[i]); for(int i=num+t+1; i>=num; i--) ans=min(ans,dp[i]); printf("%d",ans); return 0; } ```
by qsmoonzh @ 2019-11-06 22:36:42


@[唐路凌最可爱](/user/61940) 感觉这里有点问题 > if(stone[i+1]>stone[i]+90) { stone[i+1]=stone[i]+90; }
by qsmoonzh @ 2019-11-06 22:39:38


|