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 Beginner Contest 370 Solution

A void solve() {int a, b;qr(a, b);if(a + b != 1) cout << "Invalid\n";else Yes(a);} B 模拟 void solve() {qr(n);int x = 1;FOR(i, n) FOR(j, i) qr(a[i][j]);FOR(i, n) x = x >= i ? a[x][i]: a[i][x];pr2(

linux驱动模型 -- bus,device,device_driver之间的关系

Linux 设备驱动模型中,按照层次的组织结构,抽象成总线(struct bus_type),设备(struct device),驱动(struct device_driver)的层次组织形式,这是最原始的抽象结构,在此基础之上,根据不同类型的总线/设备/驱动,有形成了更高层次的组织结构,如 virtio总线(struct bus_type virtio_bus),virtio设备(

AtCoder Beginner Contest 369 D - Bonus EXP 动态规划

原题链接: https://atcoder.jp/contests/abc369/tasks/abc369_d 思路:   这道题为什么要用动态规划呢,其实,对于第i个怪物,我们有打与不打两种处理方式,而对于打,我们是获得两倍的经验值,还是一倍的经验值,与我们打了奇数只怪物还是打了偶数只怪物有关了,因此我们定义dp[i][0] 为前i只怪物总共打了偶数次,dp[i][1] 为前i只怪物总

前向保密(Forward Secrecy,也称为完美前向保密,Perfect Forward Secrecy,PFS)

前向保密(Forward Secrecy,也称为完美前向保密,Perfect Forward Secrecy,PFS)是一种加密通信协议的属性,它确保即使在未来某个时间点上长期使用的私钥(如服务器的私钥)被泄露,攻击者也无法解密之前已经捕获并记录的加密通信内容。这意味着每次通信会话都使用一个独立的、临时的会话密钥进行加密,即使主私钥被泄露,之前的通信记录也仍然保持安全。 工作原理 前向保密通常

POJ1274_The Perfect Stall(二分图最大匹配)

解题报告 http://blog.csdn.net/juncoder/article/details/38136193 题目传送门 题意: n头m个机器,求最大匹配。 ps 一分钟前刚做了POJ1469 直接改了输入输出就交了,题意完全一样,,,sad ,代码传送门 The Perfect Stall Time Limit: 1000MS Memory Limit: 1

bug系列-------i2c bus挂了导致touch无反应

今天看到一个现象,偶發玩遊戲後手動直接suspend後再resume發生system hang住,只剩下power button有作用。  看了一下log:比较可疑的如下  i2c-msm-v2 78b6000.i2c: NACK: slave not responding, ensure its powered, I2C transfer failed, : msgs(n:2 cu

python 实现perfect square完全平方数算法

python 实现perfect square完全平方数算法介绍 完全平方数(Perfect Square)是一个整数,它可以表示为某个整数的平方。例如,1,4,9,16,25,… 都是完全平方数,因为 1 = 1 2 , 4 = 2 2 , 9 = 3 2 1=1^2,4=2^2,9=3^2 1=12,4=22,9=32,依此类推。 要判断一个给定的数 n 是否是完全平方数,有几种方法可以

题解AtCoder ABC 358 F Easiest Maze

一道模拟题。 思路 最短的路线是直接竖着走下来,经过 n n n 个格子,所以 k k k 最小是 n n n。如果想要延长路线,可以采用九转大肠的形状,就像这样: 可以发现,每次向左走之后都必须走回来,所以每次新经过的格子数是偶数,得到 k − n k-n k−n 是偶数才有可行的方案。 首先,把整张图表的初始状态设为如下形式(即每个格点都是独立的): +++++S++o|o|o

AtCoder Beginner Contest 369 ABCDE

背景 无 A题:369  思路 假设A<=B 分类讨论,有如下两种情况         1.A==B,情况唯一,另外一个数只能取A         2.A<B,首先我们可以以B-A为公差d构造,另外一个数可以取A-d或者B+d。(然后接着考虑放在A和B中间的情况,样例中给了,只要B-A为偶数即可) 代码 inline void solve() {int a, b; cin >>

AtCoder Beginner Contest 369 A~E

封面原图 画师かにょこ AtCoder Beginner Contest 369 我愿称之为等差数列场 A - 369 题意 给两个数,问能和他们构成等差数列的数有多少个 代码 #include <bits/stdc++.h>#define mod 998244353using namespace std;typedef long long ll;typed