- 过河
- 2014-11-03 22:50:30 @
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
#define L 1000
#define M 200
int v[L]={0},f[L];
long long p[M];
int m,s,t,l,del=0;
int main() {
cin >>l>>s>>t>>m;
for (int i=1;i<=m;i++) cin >>p[i];
f[0]=p[0]=0;
for (int i=1;i<=m;i++) {
p[i]-=del;
if (p[i]-p[i-1]>2*t) {
del+=p[i]-p[i-1]-2*t;
p[i]=p[i-1]+2*t;
}
v[p[i]]=1;
}
l=p[m]+2*t;
for (int i=1;i<=l;i++) {
f[i]=200;
for (int j=i-t;j<=i-s;j++)
if (j>=0) f[i]=min(f[i],f[j]+v[i]);
}
cout <<f[l]<<endl;
return 0;
}
在devcpp上没有问题啊。。。求解惑
1 条评论
-
Tunix LV 8 @ 2014-11-05 15:22:36
应该是访问数组的时候下标指到数组外了吧……
- 1