#include
#include
#include
using namespace std;
int main(){
int t,n;
cin>>t>>n;
int d[n+1],a[n+1],b[n+1];
for(int i=1;i<=n;i++){
cin>>d[i];
}
a[0]=0;
b[0]=0;
for(int i=1;i<=n;i++){//处理A键的情况
a[i]=a[i-1]+2;
for(int j=1;j<i;j++){//枚举最后一次使用A键的位置
if(d[i]-d[j]<=0){//如果敌人能够被击败
a[i]=min(a[i],a[j-1]+2+i-j-1);//从j-1到i-1使用A键,再加上第i个敌人使用B键击败
}
}
if(d[i]<=0){//如果敌人能够被击败
a[i]=min(a[i],b[i-1]+1);//直接使用B键击败
}
}
b[1]=1;//处理B键的情况
for(int i=2;i<=n;i++){
b[i]=a[i-1]+1;//使用A键击败前面的敌人,再使用B键击败第i个敌人
if(d[i]<=0){//如果敌人能够被击败
b[i]=min(b[i],b[i-1]+1);//直接使用B键击败
}
for(int j=2;j<i;j++){//枚举最后一次使用B键的位置
if(d[i]-d[j]<=0){//如果敌人能够被击败
b[i]=min(b[i],a[j-1]+i-j+1);//从j-1到i-1使用A键,再使用B键击败第i个敌人
}
}
}
cout<<b[n]<<endl;//输出结果
return 0;
}
以上代码在输入为
3 3
1 2 1
2 3 2
1 2 3
的时候输出是什么内容:
对于输入3 3 1 2 1 2 3 2 1 2 3,上述代码输出为2。