我是靠谱客的博主 默默白猫,最近开发中收集的这篇文章主要介绍分治算法求最大最小值c语言,[蓝桥杯][算法提高VIP]和最大子序列 (C语言代码)分治法...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

解题思路:

注意事项:

参考代码:#include 

#include 

#include 

#include 

#include 

#include 

using namespace std;

const int maxn = 100001;

int a[maxn];

int maxsum(int *A, int x, int y)   //返回左闭右开区间[x,y)中的最大连续和

{

int v, L, R, maxs;

if(y-x == 1) return A[x];

int m = x + (y-x)/2;       //划分

maxs = max(maxsum(A,x,m),maxsum(A,m,y));

v = 0;

L = A[m-1];

for(int i = m-1; i >= x; --i)    //合并

{

L = max(L, v += A[i]);

}

v = 0;

R = A[m];

for(int i = m; i 

{

R = max(R, v += A[i]);

}

return max(maxs,L+R);

}

int main()

{

int T;

scanf("%d", &T);

for(int i = 0; i 

{

scanf("%d", &a[i]);

}

printf("%dn", maxsum(a,0,T));

return 0;

}

最后

以上就是默默白猫为你收集整理的分治算法求最大最小值c语言,[蓝桥杯][算法提高VIP]和最大子序列 (C语言代码)分治法...的全部内容,希望文章能够帮你解决分治算法求最大最小值c语言,[蓝桥杯][算法提高VIP]和最大子序列 (C语言代码)分治法...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部