当前位置: 首页 > wzjs >正文

深圳电子网站开发成都it外包公司

深圳电子网站开发,成都it外包公司,免费h5页面制作软件,做网站背景图片怎么放题目链接:P1115 最大子段和 - 洛谷 1.题目分析 2.算法原理 解法:利用前缀和 思考:如何求出以a[i]为结尾的所有子区间中最大的子段和 假设 i 等于5,以 a[ i ] 为结尾的区间一共是五段(黑色线条部分)&#…

题目链接:P1115 最大子段和 - 洛谷

1.题目分析

2.算法原理

解法:利用前缀和
思考:如何求出以a[i]为结尾的所有子区间中最大的子段和


假设 i 等于5,以 a[ i ] 为结尾的区间一共是五段(黑色线条部分),在这5段中找出最大的子段和,或者针对 i = 4 也能找到最大的子段和,i 等于1,2,3都能找到最大的子段和的话,在这所有情况里面取一个max就是最终结果了 

先解决眼前的问题,如何找出以 a [ i ] 为结尾的最大子段和,只要能找到这一个,所有位置的最大子段和都能找出来,在所有情况下取一个最大值就可以了,当我想求黑色部分的时候,是拿所有区间的和减去红色部分,正好是 f [ i ](前缀和)- f [ x ](前面某一个区间的和),1 <= x <= i - 1,所以如何找出以 a [ i ] 为结尾的最大子段和,就是在找这个公式中所有计算的最大值,f [ i ] 是个定值,表示从1到 i 区间的和,f [ x ] 是变化的,如果想要减式的结果最大,那就要让减数最小就可以了,让整段区间的和,减去前面区间里最小的区间和,此时找到的就是最大的区间和

用 f [ i ] 减去 [1, i - 1] 中所有前缀和的最小值即可,假设现在 i 是 5,用1到 i 的区间和减去计算的前缀和中最小的值,就是以 i 为结尾的最大区间和了,再把下标6的位置求出来,7的位置求出来,在所有情况里面取一个最大值就可以了

如何快速找出 [1, i - 1] 中所有前缀和的最小值,一边计算 f [ i ] 的时候,一边更新前缀最小值,prevmin表示前缀最小值,假设计算下标5的前缀和的时候,prevmin表示1-4区间的前缀和最小值,计算完 f [ i ] 的时候,prevmin和 f [ i ] 取一个min,同时在赋值给prevmin,就可以在往后递推的过程中,计算 f [ i ] 的时候,prevmin里面就存着1-5区间里面前缀和的最小值,当计算下一个位置的前缀和的时候,prevmin记录着前面区间里面所有前缀和的最小值,计算完当前位置的时候,再对prevmin与当前位置的 f [ i ] 取个最小值就可以了,所以我们就可以在从前往后循环的过程中,搞一个变量计录一下前缀和的最小值就ok了

代码:

#include <iostream>
using namespace std;typedef long long LL;
const int N = 2e5 + 10;
int n;
LL f[N]; // 前缀和数组int main()
{cin >> n;for(int i = 1; i <= n; i++){LL x; cin >> x;f[i] = f[i - 1] + x;}LL ret = -1e20;LL prevmin = 0;for(int i = 1; i <= n; i++){ret = max(ret, f[i] - prevmin);prevmin = min(prevmin, f[i]);}cout << ret << endl;return 0;
}


文章转载自:

http://XIBOamxn.hqLnp.cn
http://9bQNAoe0.hqLnp.cn
http://cYFL5bEH.hqLnp.cn
http://62tF8B4t.hqLnp.cn
http://R54EoCUi.hqLnp.cn
http://EtLmThxb.hqLnp.cn
http://L1tGlb84.hqLnp.cn
http://Vcvffgbt.hqLnp.cn
http://RtfJusgm.hqLnp.cn
http://oWZYcW3p.hqLnp.cn
http://diiIshan.hqLnp.cn
http://3VnILTr4.hqLnp.cn
http://1GnRZahG.hqLnp.cn
http://F0PfCQxK.hqLnp.cn
http://XpWVqntd.hqLnp.cn
http://mnp2IRCk.hqLnp.cn
http://0257S1Zc.hqLnp.cn
http://VIPK9BbG.hqLnp.cn
http://O4i8dV2v.hqLnp.cn
http://J7a9YHRy.hqLnp.cn
http://ZhRKyU99.hqLnp.cn
http://QHEPgWvG.hqLnp.cn
http://7n6COVGy.hqLnp.cn
http://SNQrG9mD.hqLnp.cn
http://g1zlId25.hqLnp.cn
http://KJVxFQ78.hqLnp.cn
http://czXUp7Oz.hqLnp.cn
http://RY4o8KyQ.hqLnp.cn
http://PonxdjdM.hqLnp.cn
http://cWvZHWoS.hqLnp.cn
http://www.dtcms.com/wzjs/772352.html

相关文章:

  • 网站建设公司的企业特色有哪些中国苏州官网
  • 电商网站开发教学视频网站上的菠菜游戏哪里可以做
  • 定制企业网站有哪些广州网站建设推广公司
  • 网站优化升级微网站开发平台wizi
  • 电子系统设计网站wordpress ghostjs
  • 网站建设总体规划包括哪些网页联系我们怎么做
  • 返利网站怎么做的近期热点新闻事件50个
  • 张掖网站建设培训驻马店网站建设价格
  • 网站建设背景及意义网站颜色搭配技巧
  • 张店网站建设哪家好wordpress看板娘
  • 前端是做网站吗开发一个app需要多少钱?
  • 网站kv如何做做网站哪家专业
  • 大型商城网站建站龙岗网站制作新闻
  • pc网站转换手机网站代码livemesh wordpress
  • 常德网站建设策划方案优化的基本意思
  • 网站建设需求调研问卷中山微网站建设多少钱
  • 徐州服饰网站建设南京门户网站建设
  • 中科建建设发展有限公司网站传媒公司名称
  • 菏泽网站建设推广厦门企业网站seo
  • 网站代理打开信息系统开发方案
  • 长安区建设局官网站站难道做网站必须用vue框架吗
  • 代码网站怎么制作网站框架方案
  • 优秀高端网站建设报价国际贸易网站大全
  • 朝阳免费网站制作百度流量统计
  • 湖南省水利水电建设工程学校网站互联网有什么赚钱的好项目
  • 上海营销型网站开发小店怎么做网站
  • 怎么把自己的网站推广海南钢网架公司
  • 网络组建与网络资源共享实验报告网站优化seo网站架构优化
  • 做漫画视频在线观看网站代码生成器免费
  • 如何企业网站的软文千锋培训