【算法】差分算法(空调)

news2024/9/20 1:17:39

可用于求一个数组要变为另一个数组最少要改变多少次的次数

Farmer John 的 N 头奶牛对他们牛棚的室温非常挑剔。

有些奶牛喜欢温度低一些,而有些奶牛则喜欢温度高一些。

Farmer John 的牛棚包含一排 N 个牛栏,编号为 1…N,每个牛栏里有一头牛。

第 i 头奶牛希望她的牛栏中的温度是 pi,而现在她的牛栏中的温度是 ti。

为了确保每头奶牛都感到舒适,Farmer John 安装了一个新的空调系统。

该系统进行控制的方式非常有趣,他可以向系统发送命令,告诉它将一组连续的牛栏内的温度升高或降低 11 个单位——例如「将牛栏 5…8的温度升高 1个单位」。

一组连续的牛栏最短可以仅包含一个牛栏。

请帮助 Farmer John 求出他需要向新的空调系统发送的命令的最小数量,使得每头奶牛的牛栏都处于其中的奶牛的理想温度。

输入格式

输入的第一行包含 N。

下一行包含 N个非负整数 p1…pN,用空格分隔。

最后一行包含 N个非负整数 t1…tN。

输出格式

输出一个整数,为 Farmer John 需要使用的最小指令数量。

数据范围

1≤N≤1e5
0≤pi,ti≤100000

输入样例:
5
1 5 3 3 4
1 2 2 2 1
输出样例:
5
样例解释

一组最优的 Farmer John 可以使用的指令如下:

初始温度     :1 2 2 2 1
升高牛棚 2..5:1 3 3 3 2
升高牛棚 2..5:1 4 4 4 3
升高牛棚 2..5:1 5 5 5 4
降低牛棚 3..4:1 5 4 4 4
降低牛棚 3..4:1 5 3 3 4

 分析:

(1)将两个数组分别对应相减得出一个新的数组,为他们两个数组之间的差值,当这个新的数组全为0时,可满足题目要求

(2)对新的数组求差分,由差分可知对原数组一段连续区间 a[l,r] 内每个元素加 c ,可以转化为对差分数组 b 的端点(l+c,r+1-c),如下图

(3)再次转化只要将差分数组个端点的和变为0就可

        差分数组正数的和+负数的和=0

        所以正数和或负数和改变到0的次数就是最终答案

#include<iostream>
#include<algorithm>
#define N 100010
using namespace std;

int n;
int a[N];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int t;
    for(int i=1;i<=n;i++){
        cin>>t;
        a[i]-=t;//求两数列之差
    }
    for(int i=n+1;i;i--){//倒着循环为了不影响下一个差分的结果
        a[i]-=a[i-1];//两数列之差的差分
    }
    int res=0;
    for(int i=1;i<=n+1;i++){
        if(a[i]>0) res+=a[i];//正数和
    }
    cout<<res;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1533310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Emacs之极速复制文件名、绝对路径等快捷键(一百三十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

使用appuploder流程

使用appuploder流程笔记 1.如何没有账号去apple官网注册一个&#xff0c;地址&#xff1a;https://developer.apple.com/account 2.下载解压appuploder&#xff0c;双击打开&#xff0c;用刚刚注册的账号登录&#xff0c;下载地址&#xff1a;http://www.applicationloader.n…

鸿蒙Harmony应用开发—ArkTS-显式动画

提供全局animateTo显式动画接口来指定由于闭包代码导致的状态变化插入过渡动效。同属性动画&#xff0c;布局类改变宽高的动画&#xff0c;内容都是直接到终点状态&#xff0c;例如文字、canvas的内容、linearGradient等&#xff0c;如果要内容跟随宽高变化&#xff0c;可以使用…

数据库运行状况和性能监控工具

数据库监控是跟踪组织中数据库的可用性、安全性和性能的过程&#xff0c;它涉及通过跟踪各种关键指标来分析数据库的性能&#xff0c;确保数据库的正常运行并具有深入的可见性&#xff0c;并在出现潜在问题时触发即时警报&#xff0c;以采取主动措施来确保数据库的高可用性。 …

雀巢中国劳动力生态系统上线仪式圆满落幕

3月19日&#xff0c;雀巢中国劳动力生态系统上线仪式在雀巢北京总部举办。双方代表对项目进行了回顾&#xff0c;并就2024年的重点任务展开了深入讨论&#xff0c;共同探讨未来合作的方向和策略。 当天下午&#xff0c;劳动力效能典范游学之走进雀巢活动圆满落幕。活动展示了雀…

PFA过滤柱串联反应柱各种尺寸均可加工

PFA过滤柱层析柱定制串联反应柱&#xff0c;耐酸碱耐腐蚀和各种有机溶剂。

如何让intellij idea支持一个目录多个springtboot或maven项目

一、背景 有的时候&#xff0c;我们希望intellij idea 能像 eclipse 一样有workspace的概念&#xff0c;能在一个workspace目录里面引入多个项目&#xff0c;如&#xff1a; 我们有项目a、项目b&#xff0c;现在的项目几乎都是springboot项目&#xff08;即maven项目&#xf…

C#,图论与图算法,有向图(Directed Graph)的环(Cycle)的普通判断算法与源代码

1 检查该图是否包含循环 给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,则函数应返回true,否则返回false。 方法:深度优先遍历可用于检测图中的循环。连接图的DFS生成树。只有当图中存在后缘时,图中才存在循环。后边是从节点到自身(自循环)或…

#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行

3 月 19 日&#xff0c;#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行。 现场&#xff0c;深圳市南山区人民政府副区长李志娜发布《2024 年南山区支持鸿蒙原生应用发展首批政策措施清单》&#xff0c;从加强鸿蒙原生应用供给能力、推动鸿蒙原生应用产业集聚、完善鸿蒙原生…

Linux集群

前言&#xff1a; 环境准备&#xff1a;虚拟机&#xff0c;xshell&#xff0c;mysql&#xff0c;tomcat&#xff0c;jdk&#xff0c;centos 虚拟机安装centos可以参考博客&#xff1a;虚拟机安装centos 一&#xff0c;安装jdk 打开xshell 点击cftp&#xff0c;如果没有安装…

通过nginx+xray服务搭建及本地配置

一、xray服务配置 下载&#xff1a;https://github.com/XTLS/Xray-core 进入下载界面 这里我选择的是Xray-linux-64.zip 将文件解压到 /usr/local/xray 编辑配置文件/usr/local/xray/config.json uuid可以在v2ray客服端自动生成&#xff0c;也可以在UUID v4 生成器 - KKT…

Oracle数据库冷备份(实例)

冷备份 1、 select file#,name,bytes/1024/1024 mb from v$datafile; 2 、缩减 便于copy alter database datafile 2 resize 100m;show parameter spfilecreate undo tablespace u2 datafile /u01oracle/oradata/qq/u2.dbf size 2m autoextend on; //建新的 alter system…

《2023 IT行业项目管理调查报告》新鲜出炉!助力IT行业持续稳步发展

又一年&#xff01;2024年1月&#xff0c;禅道联合多方合作伙伴&#xff0c;发起了2023年IT行业项目管理调查问卷。经过2个多月的问卷收集与报告分析&#xff0c;《2023 IT行业项目管理调查报告》发布啦&#xff01; 我们希望通过这次调查&#xff0c;深入了解不同公司和个人在…

你知道什么是工业物联网吗?——青创智通

工业物联网解决方案-工业IOT-青创智通 工业物联网&#xff0c;简称IIoT&#xff08;Industrial Internet of Things&#xff09;&#xff0c;是指将物联网技术应用于工业领域&#xff0c;实现工业设备、系统和人之间的互联互通&#xff0c;以提高工业生产效率、降低运营成本并…

Vue.js+SpringBoot开发智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…

关于Windows中的屏幕亮度的有关知识,看这篇文章就差不多了

屏幕亮度序言 你可能需要定期更改屏幕亮度。当外面很亮的时候,你会想把它调亮,这样你就能看到。当你在一个黑暗的房间里时,你会想要它变暗,这样它不会伤害你的眼睛。降低屏幕亮度也将有助于节省电源并延长笔记本电脑的电池寿命。 除了手动更改屏幕亮度外,你还可以让Wind…

机器学习 - 预测训练模型

接着上篇博客机器学习-训练模型做进一步说明。 There are three things to make predictions (also called performing inference) with a PyTorch model: Set the model in evaluation mode (model.eval())Make the predictions using the inference mode context manager (…

操作系统:malloc与堆区内存管理

malloc是函数而不是系统调用&#xff0c;他的底层是同调调用brk和mmap这两个系统调用实现功能的&#xff0c;具体选择brk还是mmap要看申请的空间大小以及malloc中的阈值&#xff08;一般是128kb&#xff09; 注意申请的空间只有使用才会触发缺页中断映射到物理内存 不理解的话先…

武汉星起航:卓越品质领航亚马逊跨境电商,助力中国卖家扬帆全球

作为业内实力雄厚的亚马逊跨境电商孵化服务商&#xff0c;武汉星起航电子商务有限公司以其卓越的品质和服务&#xff0c;为中国卖家提供了进军国际市场的强大支持&#xff0c;赢得了业界的广泛赞誉。 武汉星起航电子商务有限公司自2020年成立以来&#xff0c;便致力于连接中国…

Linux服务器导出CPU和内存使用情况

Linux服务器默认存储一个月的CPU和内存记录&#xff0c;所在目录&#xff1a;/var/log/sa/&#xff0c;如下图所示 在此用sar命令来执行 sar是一个比较全面的性能监控工具&#xff0c;包括cpu、内存、磁盘和网络等信息&#xff0c;并且该命令会每10分钟自动保存一次硬件资源使用…