连通器
向左向右扫描两次即可
每一段有水的连通区域,高度必须相同,且不超过最低天花板高度
if(p[i] > level) level = p[i]; 被隔断,要上升(隔断后,之前的就不变了,之后的从p【i】开始)
if(s[i] < level) level = s[i];
h[i] = level;
左右分别扫描一次,可以满足条件,取从左向右的h[i]和从右向左的level的min
ans += min(h[i], level) - p[i];

#include<cstdio>
#include<algorithm>
using namespace std; const int maxn = + ;
int n, p[maxn], s[maxn], h[maxn];
int main() {
int T;
scanf("%d", &T);
while(T--) {
scanf("%d", &n);
for(int i = ; i < n; i++) scanf("%d", &p[i]);
for(int i = ; i < n; i++) scanf("%d", &s[i]); int ans = , level = s[];
for(int i = ; i < n; i++) {
if(p[i] > level) level = p[i];
if(s[i] < level) level = s[i];
h[i] = level;
}
level = s[n-];
for(int i = n-; i >= ; i--) {
if(p[i] > level) level = p[i];
if(s[i] < level) level = s[i];
ans += min(h[i], level) - p[i];
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. 使用SecureCRT远程链接Ubuntu出现 Change of username or service not allowed的问题
  2. js 获得radio的值
  3. ReCap 360 photo照片建模技术的又一个例子
  4. C# 泛型约束
  5. jhat中的OQL(对象查询语言)
  6. C#中的lock关键字
  7. Hybrid App 和 React Native 开发那点事
  8. JS数据类型&amp;&amp;typeof&amp;&amp;其他
  9. centos 之7zip
  10. js转换字符串为数值的方法
  11. LOJ.6060.[2017山东一轮集训Day1/SDWC2018Day1]Set(线性基)
  12. HTML基础知识点
  13. Java spring实现文件下载
  14. know yourself
  15. tesseract-ocr 识别中文扫描图片
  16. 一个简单的python登录验证系统
  17. Antenna Placement POJ - 3020 (最小边集覆盖)
  18. webpack插件去除没用到的css
  19. POJ 2546 &amp;amp; ZOJ 1597 Circular Area(求两圆相交的面积 模板)
  20. Ubuntu 添加安装字体

热门文章

  1. [yii2]urlmanger
  2. 《Eye In-Painting with Exemplar Generative Adversarial Networks》论文阅读笔记
  3. sharepoint服务器修改密码后出现HTTP Error 503
  4. Linux学习—退出vi编辑模式
  5. vim中编辑了代码 但是提示can not write的解决办法和代码对齐办法
  6. Codeforces Round #421 (Div. 2)D - Mister B and PR Shifts(模拟)
  7. 天空盒的制作方法 Max来生成天空盒的六张图片
  8. 前端笔记之React(二)组件内部State&amp;React实战&amp;表单元素的受控
  9. 第九篇 .NET高级技术ref、out
  10. ie下,php HTTP_REFERER获取失败的整理