求最大子段和的一个奇怪的思路
  • 板块学术版
  • 楼主rfsfreffr
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/8/6 21:13
  • 上次更新2023/10/27 16:42:04
查看原帖
求最大子段和的一个奇怪的思路
175011
rfsfreffr楼主2022/8/6 21:13

由于我忘记了传统的贪心做法,在做一些其他的题目中,遇到了需要求最大子段和问题,于是就有了一下口胡的做法。

记:

fi,1f_{i,1} 为前 ii 个数的最大子段和

fi,0f_{i,0} 为以第 ii 个数为结尾的最大子段和

则易得:

fi,0=max{fi1,0,fi1,1+ai,fi1,1,ai}f_{i,0}=\max \{ f_{i-1,0},f_{i-1,1}+a_i,f_{i-1,1},a_i\}

fi,1=max{fi1,1+ai,ai}f_{i,1}=\max \{f_{i-1,1}+a_i,a_i \}

Ans=max{fn,0,fn,1}Ans=\max \{f_{n,0},f_{n,1} \}

初始化: f0,0=f0,1=f_{0,0}=f_{0,1}=-\infty

这样做好像是对的。

就是说有没有一种可能贪心做法更难想,这个动规更容易想到

其实仔细想想这个和贪心做法其实也没什么区别?

2022/8/6 21:13
加载中...