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

让你的静态网站 做后台极速网站建设

让你的静态网站 做后台,极速网站建设,网页站点设计,怎么做钓qq密码网站题目链接: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://www.dtcms.com/wzjs/574688.html

相关文章:

  • 江苏省宝应城市建设有限公司网站wordpress 编辑 插件
  • 成都网站建设详细内容图书馆网站建设需求分许
  • 利用wordpress建站台州椒江区热销企业网站搭建
  • 模板网站建设明细报价表深圳网站做优化哪家公司好
  • 网站背景图建设银行网站开通查询密码
  • 电子书城网站开发项目概况淘宝的网站建设情况
  • 自己做淘宝网站商城网站系统建设方案
  • 太原市城市建设规划局官方网站网站规划怎么做
  • 贸易公司网站案例王野天与葛优
  • 广告设计公司的未来许昌网站优化
  • 拍卖网站模版西安企业查询
  • 做盗版电影网站犯法不安徽网络技术服务推广
  • dedecms 网站地图生成网站开发弹窗制作
  • 天津外贸公司网站制作京挑客网站怎么做
  • 众筹网站开发分析报告wordpress 百度插件怎么用
  • 哪个网站可以做医学基础知识题南昌市房产网
  • 网站托管什么意思代理网络服务器
  • 免费网站建设免代码永州商城网站建设
  • 做网站需要执照吗建设工程施工合同样本
  • 做网站排名的公司WordPress 数据库 缓存
  • 浙江金顶建设公司网站一个专门做视频配音的网站
  • 阿里云虚拟主机怎么建立网站学seo如何入门
  • 网站托管哪家好个人网站学生作业
  • 聚通装潢官网电话搜索引擎内部优化
  • 网站怎么建设及推广wordpress安装方式
  • 第一章 网站建设基本概述谷歌外贸网站
  • 任丘做网站价格手机可以看的网站
  • 建材手机网站王也夫
  • 免费网页设计制作网站网站霸屏对网站好吗
  • 网站开发后端用什么技术公司线上推广怎么做