65,187
社区成员




int f(int s,int t,int start,int end){//start end分别表示当前位置坐标和终点(end==L)
if(start>=end)return 0;//递归在此结束
int min=0;
int num=0;
num=f(s,t,start+s,end);
if(status[start+i]==STONE){//status[]是记录坐标上是否有石头的数组
num++;
}
min=num;
for(int i=s+1;i<=t;i++){
num=f(s,t,start+i,end);//计算跳过i格后至少要踩多少石头
if(status[start+i]==STONE){//此处是石头个数增加的源泉
num++;
}
if(num<min){//调整最小值
min=num;
}
}
return min;//返回当前位置到终点最少踩到的石头数
}