UVALive – 4621 Cav 贪心 + 分析「建议收藏」

UVALive – 4621 Cav 贪心 + 分析

大家好,又见面了,我是全栈君。

题目大意:有一张洞穴地图,要在这个洞穴里面存放水,要求水不能碰到洞穴顶部。如今给出每一个位置的顶部位置和地面高度。问最多能够放多少水

解题思路:根据物理定理,每一段有水的连续区间,水位高度必须相等
所以我们能够求出在同一段连续区间內的水位高度,该水位高度等于最低洞穴顶部的高度。以此为根据,从左到右更新,再从右到左更新,就能够得到每一个位置的水位高度了

#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 1000010;
const int INF = 0x3f3f3f3f;
int s[N], p[N], n;

void init() {
    scanf("%d", &n);
    for(int i = 0; i < n; i++) {
        scanf("%d", &p[i]);
    }

    for(int i = 0; i < n; i++) {
        scanf("%d", &s[i]);
    }
}

int solve() {
    int t = INF;
    for(int i = 0; i < n; i++) {
        t = min(t, s[i]);
        t = max(t, p[i]);

        s[i] = t;
    }

    t = INF;
    for(int i = n - 1; i >= 0; i--) {
        t = min(t, s[i]);
        t = max(t, p[i]);

        s[i] = t;
    }

    int ans = 0;
    for(int i = 0; i < n; i++)
        ans += s[i] - p[i];

    return ans;
}

int main() {
    int test;
    scanf("%d", &test);
    while(test--) {
        init();
        printf("%d\n", solve());
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116603.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月19日 上午8:00
下一篇 2022年1月19日 上午9:00


相关推荐

  • 练习break和continue「建议收藏」

    练习break和continue「建议收藏」练习break和continue需求:计算出1到100所有不能被7整除的整数之和(用continue)代码如下:<script>varsum=0;for(vari=0;i<=100;i++){ if(i%7===0){ continue; } sum+=i;}console.log(sum);</script>需求:…

    2022年5月1日
    59
  • UPS不间断电源工作原理简述

    UPS不间断电源工作原理简述一 定义 nbsp nbsp nbsp UPS 即不间断电源 是将蓄电池 多为铅酸免维护蓄电池 与主机相连接 通过主机逆变器等模块电路将直流电转换成市电的系统设备 在欧美国家取 Uninterrupti 的英文前缀简称为 UPS 又因不间断电源系统的交流输出为固定电压 固定频率的特性 即为定电压定频率 ConstantVolt 所以在日本也

    2026年3月20日
    2
  • OpenClaw风险全链路分析及安全提示

    OpenClaw风险全链路分析及安全提示

    2026年3月14日
    1
  • 一些简单常用算法整理学习

    一些简单常用算法整理学习test5 2 cpp 定义控制台应用程序的入口点 2010 5 9 sylar include stdafx h include iostream usingnamespa 动态规划 0 1 背包问题 bestValue i j max bestValue i 1 iostream

    2026年3月16日
    2
  • Springboot面试题一

    Springboot面试题一Springboot面试题一一什么是springboot的stater,能干什么?二Springboot自动装配的原理三SpringBoot有几种读取配置文件的方式?四Springboot全局异常处理一什么是springboot的stater,能干什么?starter是一种服务,使用某个功能的开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由SpringBoot自动通过classpath路径下的类发现并加载需要的Bean。背景:在没有使用各个starter之前,我们搭

    2022年5月23日
    56
  • SDK 和 API 的区别是什么

    SDK 和 API 的区别是什么来源 https www zhihu com question answer 不知道区别的人 大概率是你还没搞懂 API SDK 是什么 讲个小故事

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号