Uva11059 最大乘积

题目描述:

输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解)。

思路:

记录起点和终点,两遍循环找到这个最大的值。这里子序列的最小长度为1。

代码:
#include <iostream>
#include <limits.h>
#define LL long long
using namespace std;
const int maxn = 20;
int nums[maxn];LL solve(int nums[], int i, int j){LL res = 1;while(i <= j){res = res * (LL)nums[i];++i;}return res;
}int main(){//freopen("uva11059_in.txt", "r", stdin);//freopen("uva11059_out.txt", "w", stdout);int n; int kase = 0;while(cin >> n){++kase;LL max = INT_MIN;LL res;for(int i = 0; i < n; ++i){scanf("%d", &nums[i]);}for(int i = 0; i < n; ++i){for(int j = i; j < n; ++j){res = solve(nums, i, j);if(res > max) {max = res;}  }}if(max < 0) printf("Case #%d: The maximum product is 0.\n", kase);else printf("Case #%d: The maximum product is %lld.\n", kase, max);printf("\n");}
} 

转载于:https://www.cnblogs.com/patrolli/p/11370253.html

UvaUva11059 最大乘积相关推荐

  1. LeetCode简单题之两个数对之间的最大乘积差

    题目 两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) . 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) ...

  2. hdu2006 求奇数的乘积【C++】

    求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  3. 蒟蒻吃药计划-治疗系列 #round 2 合并石子+乘积最大

    1.合并石子 <信息学奥赛一本通>第五版 P371 第三节 T1 我就直接开始讲吧: Warning:这个题目和 合并果子 不一样!不一样!不一样!不一样!不一样!不一样!不一样!不一样! ...

  4. 不相交轮换的乘积怎么求_谁能告诉我 轮换的乘积 怎么做?具体题目是

    展开全部 把轮换的乘积看成变换的乘积就行了,轮换本身就是变换,上式看成Ψ1Ψ2Ψ3,任给一个元素a,显然像为Ψ32313133353236313431303231363533e59b9ee7ad943 ...

  5. leetcode-152 乘积最大子序列

    题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6 ...

  6. SDUTOJ 1293 乘积最大的分解(数论)

    乘积最大的分解   思路: 让分解出来的因子有尽可能多的3,剩下的用2补全. 最开始思路错了,WA了好长时间= =! 函数中n == 1的情况应该是不用,经测试数据中没有这组. *注意用 long l ...

  7. LeetCode实战:除自身以外数组的乘积

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given an ar ...

  8. 编程——无序数组中找到最大乘积(python)

    题目 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 输入共2行,第一行包括一个整数n,表示数组长度 第二行为 ...

  9. D.Digits 思维dp 取log乘积变成加法

    题目链接 题目大意: 就是给你nnn个数和一个数字ddd,问你从这n个数中挑出若干个数,使得这些数的乘积最后的一个数字是d,并且结果是最大的,问你要挑出哪些数字? n∈[1,1e5],ai∈[1,10 ...

最新文章

  1. centos cp 详解
  2. Android镜像文件的拆解
  3. 前后端数据交互的几个方法
  4. HTML之垂直居中问题
  5. windows mongdb 安装
  6. JAVA技术周刊第一期:关于JVM你了解多少?看这篇文章就够了!
  7. python图片找字_如何用python查找图像中的字母
  8. 复习.net/c#时的小文章之万年草稿版 (全是基础概念,请懂的人绕行)
  9. spring boot注释_Spring Boot中的@SpringBootConfiguration注释
  10. Java Throwable toString()方法与示例
  11. WEB安全基础-SQL注入演示
  12. Selenium 与PhantomJS
  13. Git常用命令——基本操作
  14. Jquery.Datatables dom表格定位
  15. C语言学习笔记---嵌套结构体
  16. 5.2 LSTM、GRU tensorflow使用
  17. haproxy服务启动命令_HaProxy的安装配置和常用命令介绍
  18. OpenGL第八版--初识OpenG
  19. 云上PDF怎么删除页眉页脚_本科论文页眉与页脚怎么设置?
  20. 写给理工科大学生尤其是计算机专业大学生

热门文章

  1. 关于tomcat无法启动问题详解
  2. Vimium - 让Chrome高效工作的神器
  3. 在eclipse中开发servlet流程
  4. 户外生活--西湖林至千军台
  5. linux下如何查看文件大小 快速找到最大文件的方法
  6. 能赢球只拿12分也行 麦蒂明言不和姚明争老大
  7. pip 安装指定版本
  8. 建空列表list,数组array,矩阵matrix
  9. 大规模深度学习预测场景下 codegen 的思考与应用
  10. 2018.8.17提高B组模拟考试