题面

分析

这道题其实是差分模板qvq 区间修改 单点查询

而且题面也疯狂暗示,相邻两点海拔差,用差分简直是按照出题人意思来的,而且人性化的是n+1个点刚好n个区间,查询也只用查询第n点。

同时,知道海拔差的情况下是可以算出温度的,所以本质上这个差分数组合理也是因为可以通过前缀和倒推出温度。

所以对于每个修改,其实只有一头一尾两个点受了影响,即l-1和l的高度差影响温度和r和r+1的高度差影响温度,中间相对高度是不变的,不影响温度。

就修改这两个点就OK了.因为查询的是第n个点,其实答案可以一直累着走,修改区间的同时更新答案

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define N 200020
  4. #define ll long long
  5. ll n,q,s,t,x,l,r,v,ans,last;
  6. ll c[N];
  7. template<class T>
  8. inline void read(T &x)
  9. {
  10. x=0;ll f=1;static char c=getchar();
  11. while(c<'0'||c>'9') {if(c=='-')f=-1;c=getchar();}
  12. while(c>='0'&&c<='9'){x=x*10+c-'0',c=getchar();}
  13. x*=f;
  14. }
  15. inline ll cal(ll x){return x>0?-(x*s):-(x*t);}
  16. int main()
  17. {
  18. read(n);read(q);read(s);read(t);
  19. for(ll i=0;i<=n;i++)
  20. {
  21. read(x);
  22. c[i]=x-last;
  23. last=x;ans+=cal(c[i]);
  24. }
  25. for(ll i=1;i<=q;i++)
  26. {
  27. read(l),read(r),read(v);
  28. ans-=cal(c[l]),c[l]+=v,ans+=cal(c[l]);
  29. if(r<n)ans-=cal(c[r+1]),c[r+1]-=v,ans+=cal(c[r+1]);
  30. printf("%lld\n",ans);
  31. }
  32. return 0;
  33. }

转载于:https://www.cnblogs.com/NSD-email0820/p/9852310.html

【AtCoder2442】フェーン現象 (Foehn Phenomena)相关推荐

  1. 洛谷 AT2442 フェーン現象 (Foehn Phenomena)

    洛谷 AT2442 フェーン現象 (Foehn Phenomena) 题目链接 题意: 自己看 思路: 当前地点温度其实只和前一个地点有关,可以考虑差分,每次变动时先减去原地点产生的影响,在加上变动后 ...

  2. [AT2442]フェーン現象 (Foehn Phenomena)

    题目大意:一个数组$A$和$P$,若$A_i>A_{i+1}$,$P_{i+1}=P_i+(A_i-A_{i+1})\times S$,否则$P_{i+1}=P_i-(A_{i+1}-A_i)\ ...

  3. フェーン現象 (Foehn Phenomena)

    题意翻译 题目简述 你知道N+1N+1个地点的海拔A_iAi​,编号为0 \dots N0-N,有风从00吹向NN,想让你求出地点NN的风的温度. 保证A_0=0A0​=0 规则: 如果A_i=A_{ ...

  4. AT2442 フェーン現象 (Foehn Phenomena)

    题目地址 原题地址 题解 其实就是一个区间加,单点查询的问题 当然可以线段树/树状数组做,但是这两个做法要分类讨论所以代码会比较多 我们考虑一种更简便的做法 差分! 因为温度只和海拔差有关,这相当于题 ...

  5. 【洛谷AT2442】フェーン現象(Foehn Phenomena)【线段树】

    linklinklink 分析: 都说是裸差分 那就线段树做( 海拔的上升与下降 就区间修改 答案就单点查询 具体的就跟题意模拟了 然后注意a0a_0a0​是000 那n,x,yn,x,yn,x,y啥 ...

  6. Foehn Phenomena

    题目链接 解题思路:利用差分数组,此时得到每两个元素的差值,从首位置加到当前节点可以得到当前节点对应的元素.差分数组可以高效的改变区间值.当同时给[ l, r] 的元素 加x 时, 只需将差分数组 l ...

  7. 2019.2-2019.3 TO-DO LIST

    DP P2723 丑数 Humble Numbers(完成时间:2019.3.1) P2725 邮票 Stamps(完成时间:2019.3.1) P1021 邮票面值设计(完成时间:2019.3.1) ...

  8. 一些根本不用数据结构的题。。(积木大赛、焚风现象)

    我发现我学数据结构学傻啦..看题和数据范围就会想到些数据结构... 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木 ...

  9. 纯php实现定时器任务,純PHP實現定時器任務(Timer)

    定時器任務,在WEB應用比較常見,如何使用PHP實現定時器任務,大致有兩種方案:1)使用Crontab命令,寫一個shell腳本,在腳本中調用PHP文件,然后定期執行該腳本:2)配合使用ignore_ ...

最新文章

  1. centos7 df 命令卡死
  2. CentOs7中安装sonarQube服务系列------2.安装postgresSql数据库
  3. Caffe学习笔记3——制作并训练自己的数据集
  4. js判断是安卓手机还是ios
  5. Android 多状态加载布局的开发 Tips
  6. php Pthread 多线程 (二) Worker和Threaded
  7. 从17 个方面对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 等分布式消息队列
  8. 格式化字符串漏洞利用 四、利用的变体
  9. 基于python的性能负载测试Locust-6-脚本编写之使用HTTP client
  10. Python入门--with语句
  11. java kv对象_java入门之——对象转型
  12. 【嵌入式模块】ESP8266完整教程
  13. windows 密码过期_为什么我的密码在Windows中过期?
  14. 凯利公式和复利公式,与概率和时间为友
  15. python去除图片背景_Python 图片去除背景
  16. java中xom是啥包?_XML问题,XOM Java XML API
  17. 使用google的zxing制作二维码
  18. TWaver HTML5 高性能拓扑
  19. USR-TCP232-E2串口转以太网模块的使用方法
  20. Linux 网络设置(ifconfig、route、traceroute、netstat、ss、nslookup、dig、ping状态返回分析)

热门文章

  1. 佳能mg3150pixma_升级到佳能Pixma MP500多功能喷墨打印机
  2. 【HTML学习】表格相关(01)- 增强版
  3. HTML表格(二)---成绩单
  4. 前端导出excel插件vue-json-exce
  5. 汇集YOLO系列经典和前沿算法,实现高精度实时检测!
  6. 如何在 MacOS Monterey 菜单栏上显示电池百分比
  7. 【Leetcode刷题】35.搜索插入位置
  8. wifi信号放大器除了易拉罐,还有免费wifi软件
  9. 福建师范大学计算机科学专业,福建师范大学计算机科学与技术专业在哪个校区...
  10. 车速与档位匹配关系_车速与档位的关系汇总