CF265B 题解
WoodReal12 · · 题解
题目传送门
题目大意:
- 有
n 棵树; - 有三个操作:上下爬,吃松果,换一颗树(在同一个高度);
- 求最短时间;
解题方案:
当站在第
注意: 因为循环到第
代码:
#include <iostream>
using namespace std;
int n,a[100005];
int main(){
int h=0,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n-1;i++){//只循环到n-1!
ans+=(a[i]-h),ans++,h=a[i];
if(a[i+1]<a[i]){//如果比这棵矮
ans+=(a[i]-a[i+1]),ans++,h=a[i+1];
}
else if(a[i+1]>a[i]){//如果比这棵高
ans++;
}
else{//与这棵树相等
ans++;
}
}
ans+=(a[n]-h+1);//最后算第n棵树
cout<<ans<<endl;
return 0;
}
本蒟蒻第一篇题解,请多关照!QwQ!