洛谷 P1115 最大子段和
创始人
2024-05-29 18:39:31
0

题目链接:P1115 最大子段和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目描述

给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。

输入格式

第一行是一个整数,表示序列的长度 n。

第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai。

输出格式

输出一行一个整数表示答案。

样例 #1

样例输入 #1

7
2 -4 3 -1 2 -4 3

样例输出 #1

4

提示

样例 1 解释

选取 [3, 5] 子段 {3, -1, 2},其和为 4。

数据规模与约定

  • 对于 40% 的数据,保证 n ≤ 2 × 10^3。
  • 对于 100% 的数据,保证 1 ≤ n ≤ 2 × 10^5,−10^4 ≤ ai ≤ 10^4。

AC code 1:(动态规划,线性dp)——使用dp数组存放每一个状态

#include
#include
#includeusing namespace std;int main()
{int n;cin>>n;vector a(n);for(int i = 0 ; i < n ; i ++)cin>>a[i];vector dp(n); // dp[i] 表示以下标 i 结尾的最大字段和dp[0] = a[0];int res = dp[0];for(int i = 1 ; i < n ; i ++){dp[i] = max(dp[i - 1] + a[i] , a[i]);res = max(res , dp[i]);}cout<

AC code 2: (发现每次只需要使用上一个状态(dp[i - 1]),因此可以直接使用一个变量保存上一个状态即可,减少额外的空间开销)

#include
#include
#includeusing namespace std;int main()
{int n;cin>>n;vector a(n);for(int i = 0 ; i < n ; i ++)cin>>a[i];int temp = a[0];int res = temp;for(int i = 1 ; i < n ; i ++){temp = max(temp + a[i] , a[i]);res = max(res , temp);}cout<

当然,这题也可以使用更为精妙的“分治”思想求解。

相关内容

热门资讯

山东省宁阳县市场监管局夏日药店... 中国质量新闻网讯 7月4日,山东省宁阳县市场监管局开展夏季药店安全检查。执法人员深入辖区药店,对在售...
中消协提示青年消费者远离网贷陷... 转自:中国质量报本报讯 (记者丁 莹)7月4日,中国消费者协会(以下简称“中消协”)发布消费提示,郑...
广东省特检院佛山检测院创新“游... 中国质量新闻网讯 粤港澳大湾区建设如火如荼,架桥机作为高架桥梁建设的关键设备,其安全运行直接关系工程...
“我们挥的不是旗子,是整座镇江... 转自:扬子晚报扬子晚报网7月7日讯(通讯员 俞谷英 记者 万凌云) 7月6日晚7时30分,苏超联赛镇...
新民随笔丨AI冗余   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 热浪说来就来,难免心...
天蝎女爱情 天蝎女爱情其实每个人喜欢一个人时的表现都不同的,这要按她性格来定,我认为与星座关系不大。
中国有什么关于门槛的神话传说吗... 中国有什么关于门槛的神话传说吗?需出处。另:有门槛神吗?他有何来历?在土家族民间信仰习俗中,房屋内外...
合作才能双赢的意思 合作才能双赢的意思这有合作才能赢双赢本身就是合作的双方可以互相受益、共同发展,这也是合作的目的和前提...
深秋钓鲫鱼深水好还是浅水好? 深秋钓鲫鱼深水好还是浅水好?以我钓鲫经验来看最高气温低于10度以下可以掉1.5到2.5M的水域钓点有...
谈对象,总感觉自己有些心急,怎... 谈对象,总感觉自己有些心急,怎么把握好这个度呢?1,学会说情话,情话是异性之间必备的对话,如果女人能...