【做题笔记】P1969 积木大赛
2024-10-08 10:56:30
非常感谢 rxz 大佬提供的思路。
首先放个图(rxz 画的)
采用贪心的策略:对于一个期望高度 \(h_i\) ,如果大于 \(h_{i-1}\),那么最终答案要加上二者之差;如果小于或等于,那么说明在处理 \(h_{i-1}\) 时已经顺带处理了 \(h_i\) (可以这样想:每次处理以 \(h_i\) 的值开头最长一段最长单调递减字段)
注意:答案最小是 \(h_1\) (即,第一块积木最高),所以答案初始值为 \(h_1\)
#include <iostream>
#include <cstdio>
using namespace std;
int n,x,ans,now;
int main()
{
cin>>n;
cin>>x;
now=x;
ans=x;
for(int i=2;i<=n;i++)
{
cin>>x;
if(x>now)ans+=(x-now);
now=x;
}
cout<<ans<<endl;
return 0;
}
最新文章
- SVN 错误 Access to SVN Repository Forbidden的原因及解决方法
- AngularJS中使用$resource
- android 开发小记
- Jenkins遇到问题三:调整jdk版本不生效的解决办法
- jq 7种实例化
- thinkphp整合系列之支付宝RSA加密方式
- casio 手表北京维修网络
- STM32W108无线射频模块通用IO接口应用实例
- Servlet 参数
- python 查找日志关键字
- js添加锚点
- springmvc简单集成shiro
- leetcode287
- 逆袭之旅DAY09.东软实训.接口
- java基础-day27
- mysql获得60天前unix时间示例
- JXU1NDRBJXU0RTJBJXU1MjJCJXU1NDI3
- Webmin试玩
- Java 应用程序设计规范
- MySQL 5.7.16 zip包配置