Atcoder ABC339 C - Perfect Bus

2024-02-14 23:36
文章标签 bus atcoder perfect abc339

本文主要是介绍Atcoder ABC339 C - Perfect Bus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Perfect Bus(完美的公交车)

时间限制:2s 内存限制:1024MB

【原题地址】

所有图片源自Atcoder,题目译文源自脚本Atcoder Better!

点击此处跳转至原题

【问题描述】

在这里插入图片描述

【输入格式】

在这里插入图片描述
在这里插入图片描述

【输出格式】

在这里插入图片描述

【样例1】

【样例输入1】

4
3 -5 7 -4

【样例输出1】

3

【样例说明1】

在这里插入图片描述

【样例2】

【样例输入2】

5
0 0 0 0 0

【样例输出2】

0

【解题思路】

老汉使用到的是贪心的解题方式

本题是求最终车上的最少人数,因为车上人数不可能为负数,所以变量存在于发车时车上原有人数,条件允许的情况下原有人数为0时肯定是最小值,但是为了满足不为负这个条件,我们需要通过一个合适的原有人数进行维护。
用一个变量sum存储每个阶段车上对比原发车时的人数变化量,变量min用于存储其中变化量最低的值,当处于这个阶段都满足不为负数时,其他阶段也必然满足,最后根据sum和min求得最终答案。

代码注释有详细过程

【代码】

package ABC339_C_PerfectBus;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();long[] a = new long[n + 1];// 获取人流变化的总和,即最终总变化量long sum = 0;// 存放人流变化量总和最小阶段的值long min = Long.MAX_VALUE;for (int i = 1; i <= n; i++) {a[i] = scan.nextLong();sum += a[i];// 获取最小值min = Math.min(min, sum);}// 当最小阶段值为负数时,则代表开始时车上最少要有-min人if (min < 0) {System.out.println(sum - min);} else {// 不为负数时,代表开始时车上最少0人System.out.println(sum);}scan.close();}
}

这篇关于Atcoder ABC339 C - Perfect Bus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709886

相关文章

atcoder ABC 359-B题详解

atcoder ABC 359-B题详解 Problem Statement There are 2N people standing in a row, and the person at the i-th position from the left is wearing clothes of color Ai. Here, the clothes have N colors from 1

Atcoder Beginner Contest 359

传送门 A - Count Takahashi 时间限制:2秒        内存限制:1024MB 分数:100分 问题描述 给定 N 个字符串。 第 i 个字符串  () 要么是 Takahashi 要么是 Aoki。 有多少个 i 使得  等于 Takahashi ? 限制 N 是整数。每个字符串  是 Takahashi 或者 Aoki。() 输入格式

AtCoder Beginner Contest 359 A~C(D~F更新中...)

A.Count Takahashi 题意 给出 N N N个字符串,每个字符串为以下两种字符串之一: "Takahashi" "Aoki" 请你统计"Takahashi"出现了多少次。 分析 输入并统计即可。 代码 #include <bits/stdc++.h>using namespace std;typedef long long ll;void solve() {i

atcoder ABC 359-A题详解

atcoder ABC 359-A题详解 Problem Statement You are given N strings. The i-th string Si(1≤i≤N) is either Takahashi or Aoki. How many i are there such that Si is equal to Takahashi? Constraints 1≤N≤10

Spring Cloud Bus——概述与基本配置

在微服务架构中,多个服务之间的配置管理和事件通知是一个重要的需求。Spring Cloud Bus 提供了一个轻量级的消息总线,用于在分布式系统中传播配置变化和事件通知。它能够与 Spring Cloud Config 一起工作,实现配置的实时刷新。在这篇文章中,我们将详细介绍 Spring Cloud Bus 的基本概念以及如何进行基本配置。 一、Spring Cloud Bus 概述 Sp

PAT甲级 1085 Perfect Sequence 二分和双指针(Two Pointers)

二分写法 #include <bits/stdc++.h>using namespace std;int find_upper_bound(const vector<long long>& nums, long long x){int beg = 0, end = nums.size(), mid = beg + (end - beg) / 2;while (beg < end) {mid

AtCoder ABC 365G 凸包 + 二分

题意 AtCoder ABC 365G Freestyle 题解 考虑任两种操作 ( A i , B i ) (A_{i},B_{i}) (Ai​,Bi​)和 ( A j , B j ) (A_{j},B_{j}) (Aj​,Bj​),则他们的任意组合可以表示为 ( t A i + ( 1 − t ) A j , t B i + ( 1 − t ) B j ) \big(tA_{i}+(1-

atcoder ABC 358-B题详解

atcoder ABC 358-B题详解 Problem Statement At the entrance of AtCoder Land, there is a single ticket booth where visitors line up to purchase tickets one by one. The purchasing process takes A seconds p

AtCoder Beginner Contest 358 A~E(F,G更新中...)

A.Welcome to AtCoder Land 题意 给出两个字符串 S , T S, T S,T,请你判断是否满足: 字符串 S S S为AtCoder 字符串 T T T为Land 分析 输入后判断即可 代码 #include<bits/stdc++.h>using namespace std;void solve() {string s, t;cin >> s >

设备驱动模型之bus

前面我们分析了设备驱动模型中的device和driver,device和driver本来是不相关的东西,只因为bus的存在,才被联系到了一起。本节就来看看设备驱动模型中起枢纽作用的bus。本节的头文件在include/linux/device.h和drivers/base/base.h,实现代码主要在bus.c中。因为在bus中有很多代码时为了device找到driver或者driver找到dev