复盘差分的时候,刷到了这道题,发现灰常巧妙,所以记录一下,发布一篇blog。供读者参考

题目链接:http://oj.daimayuan.top/course/22/problem/283 

分析:为什么会选择用差分?

要使初始值往目标值进行调整,那么最坏的情况一定是它们的 |差值| 之和,即:每次选择一个牛棚进行温度调整。要使指令数量最少,那么就需要选择尽可能连续的区间,进行调整。

我们可以知道,调整完后的两个数组是相同的,即:他们的差值都为0.

如何进行调整?这里就需要差分。

怎样差分?

这里的差分数组D,用的是两个数组之间的差值进行构造的。

我们发现,改变一段连续的区间【L,R】,对于差分数组的操作即为:

D【L】+=1,D【R+1】-=1

要使得到达目标,我们就必须将D数组全部构造为0。这样才会满足调整完后的两个数组是相同的

样例图解: 

代码: 

#include <bits/stdc++.h>
#define pi acos(-1)
#define int long long
#define PII pair<int,int>
#define all(v) v.begin(),v.end()
#define INF 0x3f3f3f3f3f3f3f3f
#define fs(a) cout<<fixed<<setprecision(a)<< //fs(4)(1.0/3)=0.3333//保留a位小数
#define read() freopen("input.txt","r",stdin)
#define output() freopen("output.txt","w",stdout)
#define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int N=2e6+10;
const int mod = 1e9+7;
const int Mod = 998244353;
int up(int a,int b){return a<0?a/b:(a+b-1)/b;}//       a/b向上取整
int n,a[N],b[N],c[N],d[N];inline void solve(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];for(int i=1;i<=n;i++) c[i]=a[i]-b[i];//差值数组for(int i=1;i<=n+1;i++) d[i]=c[i]-c[i-1];//差分数组int ans=0;for(int i=1;i<=n+1;i++) ans+=max(d[i],0LL);//+(D[i]>0)cout<<ans<<'\n';
}signed main(){fast; solve();
}

[USACO Dec21 Bronze]Air Cownditioning相关推荐

  1. [USACO21DEC] Air Cownditioning B(差分)

    [USACO21DEC] Air Cownditioning B https://www.luogu.com.cn/problem/P7994 题目描述 Farmer John 的 NNN 头奶牛对他 ...

  2. 【Usaco DEC08 bronze】劣质的草

    题目描述 贝茜像其它奶牛一样正在吃草,她正在思考她所在的地方.她注意 到她只得到了一个平于海平面的广泛大片牧场.只有海拔1米或者更 高更硬的草不那么美味.草随着海拔的增加越发难吃. 继续咀嚼,她意识到 ...

  3. P2837 晚餐队列安排

    题目背景 Usaco Feb08 Bronze 题目描述 为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前半 ...

  4. 2022 . 11 . 26 测试赛解题报告

    2022 . 11 . 26测试赛 [USACO21DEC] Lonely Photo B 题目描述 Farmer John 最近购入了 NNN 头新的奶牛(3≤N≤5×1053 \le N \le ...

  5. Promotion Counting【USACO 2016 January Contest, Bronze】

    今天来分享一下我做过的几道Usaco的比较简单的题,Usaco是美国的一个c++竞赛比赛,但是全球各地的人都可以参加,Usaco没有监考,全凭诚信,但是你拿着这个 作弊 借鉴来的成绩,所有美国的大学都 ...

  6. USACO 1月 2021-2022 January Contest Bronze 题解

    目录 你好啊我又又又来了 要准备usaco的铁铁们可以参考这个文章哦!USACO题库 - 比Usaco Training更好用的网站_GeekAlice的博客-CSDN博客https://blog.c ...

  7. USACO January 2014 Bronze Level

    当时没参加silver的比赛,今天就只是想熟悉一下python的语法(以前都用最熟悉的C++写),于是水了一下Bronze level的题目. A:最后的结果肯定是在[begin, begin+17] ...

  8. USACO 2021 January Contest, Bronze. Problem 1. Uddered but not Herd

    题目描述 一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」.牛文由 26 个字母 'a' 到 'z' 组成,但是当奶牛说牛文时,可能与我们所熟悉的 'abcdefghijklmnopqrstuvwx ...

  9. [USACO 2014 Jan Bronze]滑雪训练课程题解

    ..开始做usaco的题目.. 先来一道铜组的切切.. 某人: "你们如果要做USACO就要做金组和银组里面最难的,其它都太水了,做了没有益处.." 可以我太水了....只会做铜组 ...

最新文章

  1. pycharm打开报错python已经停止工作
  2. MySQL-索引优化篇(2)_使用索引扫描来优化排序
  3. 零基础跟我学前端之css3基础
  4. MS SQL入门基础:数据库中的锁
  5. mysql的mtr是指什么_MySQL中MTR的概念
  6. 前端学习(355):小练习
  7. ORTP协议栈【ZT】
  8. 【Elasticsearch】检查您的 Elasticsearch 分片
  9. vue中的 $children 和 $parent
  10. 语音转换截取N个文字进行转换
  11. 判断一个单链表是否有环及环的链接点
  12. [c# 20问] 4.Console应用获取执行路径
  13. 如何手工突破网吧的种种限制(转)
  14. 基于 GMDSS 的电子海图定位仿真研究
  15. Vue安装步骤及教程(详细)
  16. iOS设置基于ikev2的协议连接企业虚拟专用网络
  17. CH330显示未知USB设备(设备描述符请求失败)
  18. 人员玩手机离岗识别检测系统 yolov5
  19. 为什么建模要尽量用四边面?如何将三边面转化成四边面?
  20. 51la图片做网店流量统计

热门文章

  1. 微信公众号自定义二维码关注后自动为粉丝分组
  2. 免费工资总额管控系统-JXHR2016
  3. DPDK 20.11 Dynamic mbuf
  4. IT30:新门店开业前IT准备工作!
  5. stm32/gd32电动车控制器资料
  6. 我为什么要从外包公司辞职?
  7. 克隆指定分支git clone -b
  8. html表格里怎么让字分行,excle文字怎么换行 | Excel单元格里文字如何分行
  9. php+mysql原仿素材火素材源码平台程序
  10. 【转】如何使用论坛、wiki、搜索等来获得自己需要的知识(FROM Ubuntu中文社区)