【正经题解】铺设道路
2024-03-15 17:45:48
发布于:浙江
26阅读
0回复
0点赞
主要思路是使用贪心算法,从左到右遍历每块区域,如果当前区域的深度小于下一个区域的深度,就填充当前区域到下一个区域的深度差。这样可以确保在最短时间内将整段道路的下陷深度都变为 。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
// 用数组 a 存储每块区域下陷的深度
int a[n + 5];
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int sum = a[1]; // 初始化总天数为第一块区域的深度
for (int i = 1; i < n; i++) {
// 如果当前区域的深度小于下一个区域的深度,累加两者之差到总天数
if (a[i] < a[i + 1]) {
sum += a[i + 1] - a[i];
}
}
cout << sum; // 输出总天数
return 0;
}
这里空空如也
有帮助,赞一个