#include<iostream>
#include<algorithm>
using namespace std;
int maxsum(int a[],int x,int y)
{int v,l,r;if(y-x==1)//只有一个元素,直接返回 return a[x];int m=x+(y-x)/2;//分治法第一步,划分成[x,m)和[m,y)int maxs=max(maxsum(a,x,m),maxsum(a,m,y));//分治法第二步:递归求解 v=0;l=a[m-1];//分治法第三步:合并(1)-从分界点开始往左的最大连续和lfor(int i=m-1;i>=x;i--)l=max(l,v+=a[i]);v=0;r=a[m];for(int i=m;i<y;i++)//分治法第三步:合并(2)-从分界点开始往右的最大连续和r r=max(r,v+=a[i]);return max(maxs,l+r);//把子问题的解l和r比较
}
int main()//分治法
{int n,a[100];cin>>n;for(int i=0;i<n;i++)cin>>a[i];cout<<maxsum(a,0,n);return 0;
}
/*
int main()//优化后
{int s[100],a[100],n,ans;cin>>n;s[0]=0;for(int i=1;i<=n;i++)cin>>a[i];ans=a[0];for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];for(int j=1;j<=n;j++)for(int k=j;k<=n;k++)ans=max(ans,s[k]-s[j-1]);cout<<ans<<endl;return 0;
}*/
/*int main()//一般方法
{while(1){int a[100],ans,n,sum;cin>>n;for(int i=0;i<n;i++)cin>>a[i];ans=a[0];for(int i=0;i<n;i++){for(int j=i;j<n;j++){sum=0;for(int k=i;k<=j;k++){sum+=a[k];}ans=max(ans,sum);}}cout<<ans<<endl;}return 0;
}*/

三种方法求最长子序列问题相关推荐

  1. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  2. 三种方法求最大公约数及求n个数的最小公倍数

    一.三种方法求两个数的最大公约数 (1) 辗转相除法 辗转相除法求最大公约数是一种常用的求两个数的最大公约数的方法. 方法是: 以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除 ...

  3. 三种方法求最大公约数(C语言版)

    问题描述:用三种方法求两个的整数的最大公约数. 算法分析: 1.相减法:输入两整数a和b,(1)如果a>b,a=a-b;(2)如果a<b,b=b-a;(3)如果a=b,a或b就为这两个整数 ...

  4. C++算法:三种方法求最大公约数和最小公倍数

    三种方法求最大公约数和最小公倍数标题 首先明确最大公约数和最小公倍数的关系,设两个数为a,b:最大公约数为c,最大公倍数为d: 则ab=cd;怎么得到的可以通过数学算式证明. 分别用暴力搜索法,辗转相 ...

  5. 机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数)

    机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数) 转载于:https://blog.csdn.net/promisejia/article/details/80159619?ops_req ...

  6. 三种方法求递归算法的时间复杂度(递推,master定理,递归树)

    三种方法: 递推方法求递归算法的时间复杂性 Master定理方法求递归算法时间复杂性 递归树求解递归方程 1.递推方法求递归算法的时间复杂度 我们先来看一个经典的案例,汉诺塔问题 汉诺塔(Hanoi ...

  7. 三种方法求字符串长度

    在求字符串长度时,第一时间会想到运用strlen这个函数,但对于初学者来说,除了掌握这个函数之外,还应当自己写函数来实现相似的功能. 接下来我列举了三种方法来求字符串长度,供大家参考: (1)运用st ...

  8. 算法--三种方法求连续子数组的最大和

    这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典. 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  9. 三种方法求最大公约数和最小公倍数

    最大公约数 最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个. 最大公约数有多种方法,常见的有质因数分解法.短除法.辗转相除法.更相减损法. java代码中实现了这三种算法 ...

最新文章

  1. python 重置索引_Pandas的reset_index()重置索引列
  2. Javascript图像处理之将彩色图转换成灰度图
  3. requestbody接收不到参数_使用Spring MVC解析嵌套参数在三种 ContentType 下的绑定方式...
  4. Rainbond 5.0正式发布, 支持对接管理已有Kubernetes集群
  5. std::call_once写单列模式
  6. 极致CMS个人博客企业官网模板
  7. 写这么骚的代码,真不怕被同事揍么?
  8. 《SQL Server2008》第二章 创建和管理数据库
  9. Mysql-5.6.x多实例配置
  10. 提高开发效率的十五个Visual Studio 2010使用技巧
  11. 挑战程序设计竞赛是c语言编写的嘛,POJ 2115 C Looooops 题解《挑战程序设计竞赛》...
  12. MovieLens 数据集补充版爬虫代码解析
  13. linux命令怎么查看日志文件,linux查看日志文件命令
  14. 2018年1月份最热门的JavaScript开源项目
  15. dsp6657的helloworld例程测试-第一篇
  16. 大学计算机实验6实验报告,东华大学计算机病毒课实验六宏病毒实验报告
  17. 【纪中受难记】——Day11:傻逼题遇上傻逼人
  18. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第七章 阴影 Shadows
  19. 基于Qt的收银点餐系统之小票打印(二)
  20. VMware vSphere Hypervisor 7(ESXi 7)

热门文章

  1. 微型计算机的应用特点,微型计算机的特点及应用
  2. JAVA入门级教学之(内存地址的引用示例)
  3. eclipse 导入maven项目_解决Eclipse导入JAVA WEB项目错误的问题
  4. android 组件路由框架,XRouter:组件化路由框架
  5. mysql having ct_mysql中where和having子句的区别和具体用法
  6. webservice 服务器无法处理请求_Message Queue与WebService比较
  7. split函数python 未定义_python split函数基本用法
  8. 如何安装python3_linux如何安装python3
  9. C++ STL 容器 vector
  10. php用不了for循环吗,php中的这两个for循环有什么区别吗?