博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
差分模版题(需理解才明白)AT2442 フェーン現象 (Foehn Phenomena)
阅读量:6688 次
发布时间:2019-06-25

本文共 1371 字,大约阅读时间需要 4 分钟。

1 #include 
2 #define read read() 3 #define up(i,l,r) for(register int i = (l);i <= (r);i++) 4 #define down(i,l,r) for(register int i = (l);i >= (r);i--) 5 #define traversal_vedge(i) for(register int i = head[u]; i ;i = e[i].nxt) 6 #define ll long long 7 using namespace std; 8 int read 9 {10 int x = 0, f = 1; char ch = getchar();11 while(ch < 48 || ch > 57) {
if(ch == '-')f = -1; ch = getchar();}12 while(ch >=48 && ch <=57) {x = 10 * x + ch - 48;ch = getchar();}13 return x * f; 14 }15 const int N = 2e5+7;16 ll n,q,S,T,b[N],ans;17 18 inline ll get(ll x)19 {20 return x > 0 ? (-x*S) : (-x*T);21 }22 23 int main()24 {25 freopen("input.txt","r",stdin);26 n = read; q = read; S = read; T = read;27 ll last = read;28 up(i,1,n)29 {30 ll x = read;31 b[i] = x - last;32 last = x;33 ans += get(b[i]);34 }35 //ans代表b[i](1~n)遍历后的答案; 36 while(q--)37 {38 int l = read, r = read, x = read;39 ans -= get(b[l]);// b[l]改变,先减后加;40 b[l] += x;41 ans += get(b[l]);42 if(r < n)43 {44 ans -= get(b[r+1]);//debug -= -> +=45 b[r+1] -= x;46 ans += get(b[r+1]);//degug += -> -=47 }48 printf("%lld\n",ans);49 }50 return 0;51 }

 

转载于:https://www.cnblogs.com/mzg1805/p/10413166.html

你可能感兴趣的文章
资深阿里程序猿深入讲解《微服务架构在阿里的演化》
查看>>
学习笔记|AS入门(五) 高级控件篇(下)
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis (十)Spring Boot多数据源配置与使用Spring-data-jpa支持...
查看>>
【CLI】使用 Curl 下载文件实时进度条显示
查看>>
数据结构(二)LinkedList源码分析
查看>>
ES6, Angular,React和ABAP中的String Template(字符串模板)
查看>>
Android 滤镜效果和颜色通道过滤
查看>>
Tomcat9的启动和终止
查看>>
Python学习笔记:操作数据库
查看>>
Selenium + ChromeDriver
查看>>
笔记:解读express 4.x源码
查看>>
Git的简易使用
查看>>
Android TabLayout+ViewPager+Fragment
查看>>
用Python转换一些常见全角字符为半角
查看>>
Electron入手记录(原有Vue项目中添加Electron)
查看>>
rainbond 开源版更新 3.4.1 版本
查看>>
PHP 数字转换为大写函数
查看>>
高校天文共享平台开发过程中的一些思考
查看>>
浅谈支撑起支付宝整个“11-11”的幕后功臣OceanBase数据库
查看>>
react-router v3学习整理
查看>>