当前位置: 首页 > news >正文

P4552 [Poetize6] IncDec Sequence 题解

P4552 [Poetize6] IncDec Sequence - 洛谷

差分+贪心

根据题目:一段区间都加1或减1 , 可以想到差分

构建差分数组:sub   我们要让除了sub[1] , 其他全是0

我们可以的操作是:l+1 , r-1    or   l-1 , r+1   or    一个数+1 / -1

所以找到 一对正负数 就可以消掉   小的那个数

消掉剩下消不掉的 , 就自己单独消掉

所以 最少操作 : max(  sum_p , sum_n  )

种类数:此时diff = abs(sum_p -  sum_n )   剩下不可用一对正负数消掉的,需要自己消掉的数

if  diff < 0    ,  可以给sub[1] 减去(1 - diff)  还要+上原来的sub[1]

if  diff > 0    ,  可以给sub[1] 加(1 - diff)  还要+上原来的sub[1]

sub[1]是多少整个数组最后就是多少 , 所以有 diff +1 种

#include <bits/stdc++.h>
using namespace std;
#define int long longsigned main() {int n;cin >> n;vector<int> a(n+1,0);vector<int> sub(n+1,0);for(int i=1;i<=n;i++){cin>>a[i];    sub[i] = a[i] - a[i-1];}int sum_p = 0 , sum_n = 0;for(int i=2;i<=n;i++){if(sub[i] >= 0){sum_p += sub[i];}else{sum_n += sub[i];}}sum_n = -sum_n;cout<<max(sum_p , sum_n)<<endl;cout<<abs(sum_p - sum_n)+1<<endl;return 0;
}

相关文章:

  • 玩转Docker | 使用Docker部署AI证件照工具
  • ARM 算数指令
  • 鼠标悬浮特效:常见6种背景类悬浮特效
  • 如何在 CentOS 7 命令行连接 Wi-Fi?如何在 Linux 命令行连接 Wi-Fi?
  • 蟋蟀的叫声,大自然的温度计
  • 网络Tips20-002
  • 多多铃声 7.4| 拥有丰富的铃声曲库,满足不同用户的个性化需求,支持一键设置手机铃声
  • 多把锁以及线程死锁问题
  • Spring AI 实战:第三章、Spring AI结构化输出之告别杂乱无章
  • 【RocketMQ NameServer】- NameServer 启动源码
  • 如何设计抗Crosstalk能力强的PCB镀穿孔
  • 一种基于重建前检测的实孔径雷达实时角超分辨方法——论文阅读
  • ROS2安装简明教程
  • 算力经济模型研究:从云计算定价到去中心化算力市场设计
  • Linux时钟与时间API
  • spring2.x详解介绍
  • Power Query精通指南1:查询结构设计、数据类型、数据导入与迁移(平面文件、Excel、Web)
  • 爬虫准备前工作
  • AIGC时代——语义化AI驱动器:提示词的未来图景与技术深潜
  • WebAPI项目从Newtonsoft.Json迁移到System.Text.Json踩坑备忘
  • 十四届全国政协原常委、民族和宗教委员会原副主任苟仲文被提起公诉
  • 潘功胜:央行将创设科技创新债券风险分担工具
  • 中国驻俄大使张汉晖人民日报撰文:共襄和平伟业,续谱友谊新篇
  • 六大车企一季报:比亚迪近92亿净利稳居第一,多家车企营收下滑
  • 美政府称不再对哈佛大学提供联邦资助
  • 1101名优秀运动员拟保送,全红婵、黄雨婷、盛李豪在列