第十四届蓝桥杯青少组C++选拔赛[2022.12.18]第二部分编程题(4、充电站) - 指南
参考程序:
#include
using namespace std;
int main() {
int D, N;
cin >> D >> N; // 读取 D 和 N
vector dist(N - 1);
for (int i = 0; i > dist[i]; // 读每一段相邻站之间的距离
}
// 先检查有没有单段距离大于 D,如果有,必定到不了终点
for (int d : dist) {
if (d > D) {
cout << -1 << "\n";
return 0;
}
}
int count = 1; // 包含起点的第一次充电
int remaining = D; // 当前剩余可行驶里程(起点充满电)
// 依次尝试每一段路
for (int i = 0; i < N - 1; ++i) {
if (remaining < dist[i]) {
// 到不了下一站,必须在当前站充电
count++;
remaining = D; // 充满电
}
remaining -= dist[i]; // 开车走这一段
}
cout << count << "\n";
return 0;
}