uva1442 Cav
2024-09-02 22:33:55
连通器
向左向右扫描两次即可
每一段有水的连通区域,高度必须相同,且不超过最低天花板高度
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 ;
}
最新文章
- 使用SecureCRT远程链接Ubuntu出现 Change of username or service not allowed的问题
- js 获得radio的值
- ReCap 360 photo照片建模技术的又一个例子
- C# 泛型约束
- jhat中的OQL(对象查询语言)
- C#中的lock关键字
- Hybrid App 和 React Native 开发那点事
- JS数据类型&;&;typeof&;&;其他
- centos 之7zip
- js转换字符串为数值的方法
- LOJ.6060.[2017山东一轮集训Day1/SDWC2018Day1]Set(线性基)
- HTML基础知识点
- Java spring实现文件下载
- know yourself
- tesseract-ocr 识别中文扫描图片
- 一个简单的python登录验证系统
- Antenna Placement POJ - 3020 (最小边集覆盖)
- webpack插件去除没用到的css
- POJ 2546 &;amp; ZOJ 1597 Circular Area(求两圆相交的面积 模板)
- Ubuntu 添加安装字体
热门文章
- [yii2]urlmanger
- 《Eye In-Painting with Exemplar Generative Adversarial Networks》论文阅读笔记
- sharepoint服务器修改密码后出现HTTP Error 503
- Linux学习—退出vi编辑模式
- vim中编辑了代码 但是提示can not write的解决办法和代码对齐办法
- Codeforces Round #421 (Div. 2)D - Mister B and PR Shifts(模拟)
- 天空盒的制作方法 Max来生成天空盒的六张图片
- 前端笔记之React(二)组件内部State&;React实战&;表单元素的受控
- 第九篇 .NET高级技术ref、out
- ie下,php HTTP_REFERER获取失败的整理