铺设道路
洛谷P5019
ummmmm 这道题纯模拟能做吗?(敲键盘…)啊啊啊 好麻烦!
等等 贪心!?
贪心策略实际上就是在填满小坑的同时,大坑也会被填掉一些,所以
if (d[i]>d[i-1])
ans+=d[i]-d[i-1];
思路:
- 输入
- 判断
- 输出(别忘记了 这种策略是在不算第一个的基础上进行的 所以最后还要加上第一个坑)
#include <iostream>
using namespace std;
int n,ans=0;
int d[100005];
int main ()
{
cin >> n;
for (int i=0;i<n;i++)
cin >> d[i];
for (int i=1;i<n;i++)
if (d[i]>d[i-1])
ans+=d[i]-d[i-1];
cout << ans+d[0];
}
此题解已AC,也欢迎指出更多优化方法~
❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀
本文介绍了如何使用贪心策略解决洛谷P5019题目,通过填满小坑来逐步处理大坑,最终实现问题的解决。此解法已获得正确答案,作者欢迎分享更多优化建议。
1155

被折叠的 条评论
为什么被折叠?



