题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=24&problem=448&mosmsg=Submission+received+with+ID+17398735

题意:给出一个由正数和负数组成的数组,求其最大子数组和,要求如果子数组和相等,选择最长的子数组组成的

思路:f[i] = max{f[i] + a[i], a[i]},同时记录起始位置和终止位置,当存在相等情况时,选择终止位置与起始位置之差最大的

代码如下:

#include <cstdio>
#include <climits>using namespace std;const int N = 20001;int s, cas;
int route[N];void input();
void solve();int main()
{
#ifndef ONLINE_JUDGEfreopen("f:\\OJ\\uva_in.txt", "r", stdin);
#endifint b;scanf("%d", &b);while (b--){input();solve();}return 0;
}void input()
{scanf("%d", &s);for (int i = 0; i < s - 1; i++){scanf("%d", &route[i]);}
}void solve()
{int sum = INT_MIN / 2;int f = sum;int start = 0, stop = 0;int temp_start = 0;for (int i = 0; i < s - 1; i++){if (f < 0){temp_start = i + 1;f = route[i];}else{f += route[i];}if (f >= sum){if (f > sum){start = temp_start;stop = i + 2;}else if (i + 2 - temp_start > stop - start){ start = temp_start;stop = i + 2;}sum = f;}}if (sum > 0){printf("The nicest part of route %d is between stops %d and %d\n", ++cas, start, stop);}else{printf("Route %d has no nice parts\n", ++cas);}
}

Uva 507 - Jill Rides Again(最大子数组求和问题)相关推荐

  1. 整数数组中最大子数组求和02

    设计思路: 在"整数数组中最大子数组求和01"的基础上完成本次实验. 本次实验的关键在于如何判断结束. 经设计,程序结束条件有两种:1.截取部分有重复:2.循环完整两次. 满足其中 ...

  2. 环状二维数组最大子数组求和

    题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一 ...

  3. 最大子数组和——动态规划法

    1.总结上一篇方法 上一篇求解最大子数组用的是暴力求解法,把所有可能的子数组和求出来,然后比较得出最大的子数组和,这方法也是最容易想出来的,编程比较容易,感兴趣的同学可以看我的上一篇博客. 2.基于动 ...

  4. 求二维数组最大子数组

    结对队友:胡康臻.杨寒寒 1.设计思想: 首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生: 然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只 ...

  5. 求二维数组中最大子数组的和

    任国庆  张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...

  6. OI基础系列之最大子数组问题

    OI基础系列之最大子数组问题   --Edward2414    oi退役了,虽然没取得多少成绩,也算是走过一会的人了.我相信绝大多数oi党都是自学成才,在此,我感谢那些把自己所学写到博客里的前辈们, ...

  7. [LeetCode] Maximum Subarray 最大子数组

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  8. 首尾相连的一位数组最大子数组和

    题目:在原有的一位数组上进行扩展,求首尾相连的最大子数组的和: 要求: 输入一个一维整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和 ...

  9. 求数组的最大子数组和最大子数组的和

    输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, 1 ...

最新文章

  1. 新手必看,17个常见的Python运行时错误
  2. linux中yum怎么安装服务器,yum安装(linux如何安装yum)
  3. 前端学习(497):布局之居中布局
  4. 前端工具lighthouse
  5. 大佬就是有想法!比尔盖茨办公室曝光:实体版元素周期表震撼!
  6. 树莓派+Kubernetes
  7. msf 生成php马_PHP的性能优化方法总结
  8. java高级工程师------struts的知识重点
  9. python三种基本的数据类型有_python基本数据类型一
  10. android fps 性能分析,Android性能测试关注的指标整理
  11. 读书笔记--正面管教
  12. 怀旧服ouf头像插件_wow怀旧服头像美化插件下载
  13. 计算机2010word中的页面背景在哪里,word2010里怎样填充页面背景图片
  14. 一个好玩的编程小游戏—— 母牛生小牛
  15. 3D建模软件测试自学,收藏:5个自学3DMAX教程以及3D模型资源的网站
  16. Markdown 数学公式大帅了
  17. 四川师范大学自然地理(1-地球)90分以上版本
  18. 【ArcGIS错误异常100问】之002:Error 000735 简化容差:值是必需的(简化线、简化面工具)
  19. 如何用arcgis修改栅格文件的波段数?
  20. 漫话:如何给女朋友解释为什么日本时间比中国时间快一个小时

热门文章

  1. Android模拟器访问pc与网络的问题
  2. shell启动java_一个通用的java Application启动shell脚本
  3. python这个软件学会能做什么工作-工作三年却被实习生抢了饭碗,学会Python到底有多吃香?...
  4. python 吧-做为IT人的你 趁年轻学点Python吧
  5. python利器的使用-图文详解python开发利器之ulipad的使用实践
  6. python程序员需要掌握哪些技术-python运维要掌握哪些内容
  7. 大学python用什么教材-最好的Python入门教材是哪本?
  8. python系统-python做系统
  9. python创建csv文件并写入-Python 读写 CSV
  10. python语言入门u-Python语言十分钟快速入门