洛谷链接&Atcoder 链接

本篇题解为此题较简单做法较少码量,并且码风优良,请放心阅读。

题目简述

从数轴的原点开始向正方向走。

第一次向前走 \(a_1\) 步,第二次向前走 \(a_1+a_2\),以此类推。

求走过的最大位置

思路

首先直接模拟时间复杂度 \(O(n^2)\),看一下数据范围 \((1 \le N \le 2 \times 10^5)\) 得知此方法会超时

那么就需要一点优化,用前缀和即可解决此题,没学过前缀和的建议看这个通过前缀和求出前 \(i\) 项的和就很容易解决此题了:

for(int i = 1; i <= n; i ++) {
cin >> a[i];
pre[i] = pre[i - 1] + a[i];
}

预处理前缀和,在预处理的过程中同步求最大值,但因为此题的答案即最大值有可能在过程中产生故需要 \(O(N)\) 遍历前缀和求最大,此时间复杂度可以接受。

经过以上分析和前缀和优化,很容易即可得出代码了:

#include<iostream>
using namespace std; int n, a[200005];
long long pre[200005], maxn[200005]; // 前缀和数组及最大前缀和数组 int main() {
cin >> n;
for(int i = 1; i <= n; i ++) {
cin >> a[i];
pre[i] = pre[i - 1] + a[i]; // 预处理前缀和
maxn[i] = max(maxn[i - 1], pre[i]); // 预处理前缀和最大值
}
long long temp, ans = -0x3f3f3f3f; // ans 要求最大值,所以建议赋值一个足够小的负数
for(int i = 1; i <= n; i ++) {
ans = max(ans, maxn[i] + temp); // 遍历求最大值
temp += pre[i]; // 一点点模拟
}
cout << ans << endl; // 输出,换行好习惯
return 0;
}

提交记录

\[\text{The End!}
\]

AT_abc182_d 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. Istio(四):创建部署Gateway并使用网关暴露服务

    目录 一.模块概览 二.系统环境 三.Gateway网关 3.1 使用 Gateway 四.实战:使用Gateway发布服务 4.1 创建部署并使用网关暴露 4.2 清理 一.模块概览 在Kubern ...

  2. golang 后台 苹果一键登录 sing in with apple

    本文主要展示golang后台编写苹果一键登录的代码.苹果一键登录的流程需自行去查看相关文档 这是解析 identity_token的方法来验证    如果是用code的话验证 请去 https://b ...

  3. kubernetes使用metrics-server进行资源监控

    kubernetes资源监控 1. 查看集群资源状况 ·k8s集群的master节点一般不会跑业务容器· kubectl get cs #查看master资源状态 kubectl get node # ...

  4. 分享下最近基于Avalonia UI和MAUI写跨平台时间管理工具的体验

    起因 几个月前,我在寻找一款时间管理软件,类似番茄时钟的工具,但是希望可以自定义时间. 需要自定义的场景 做雅思阅读,3篇文件需要严格控制时间分配,需要一个灵活的计时器 定期提醒,每30分钟需要喝水或 ...

  5. HTML 使用动态脚本

    这个 HTML 图片框架 这个HTML支持的脚本属于动态的插件形式的程序 用分段数方式实现动画 1定时器 2函数 计算机有四则运算加减乘除 还有一个是 ^ (shift + 6这个符号是余数,8^3是 ...

  6. core dump 路径定义以及监控

    Core Dump 是什么? Core Dump 是指进程异常退出时,操作系统将进程的内存状态保存到文件中,这个文件就是 Core Dump 文件,中文一般翻译为"核心转储",哈, ...

  7. [DP] DP优化总结

    写在前面 $ DP $,是每个信息学竞赛选手所必会的算法,而 $ DP $ 中状态的转移又显得尤为关键.本文主要从状态的设计和转移入手,利用各种方法对朴素 $ DP $ 的时间复杂度和空间复杂度进行优 ...

  8. windows 安装mysql 非常之详细

    安装 1.下载安装包 2.解压包  3.文件夹内创建my.ini配置文件,并添加内容 # For advice on how to change settings please see # http: ...

  9. 深入了解 C# Span:高性能内存操作的利器

    深入了解 C# Span:高性能内存操作的利器 在 C# 7.2 中引入的 Span<T> 类型为我们提供了一种高效且安全地对内存进行操作的方式.Span<T> 是一个轻量级的 ...

  10. C# .NET 常见DeepCopy 深度拷贝的性能对比

    先上结论 Method Mean Error StdDev Gen0 Gen1 Allocated JSONConvert 2,273.02 ns 43.758 ns 52.091 ns 0.6599 ...