(暴力枚举) UVa 11059 Maximum Product
2015-08-06 10:20
351 查看
(暴力枚举) UVa 11059 Maximum Product
题目:
题目大概的意思就是给定一个序列,序列长度不超过18,序列也每个元素都是-10和10之间的数。求最大的连续序列乘积。
分析:
看到这道题首先想到的就是暴力枚举进行求解。(注意因为最大可能会出现10^18,所以用long long类型)枚举对象: 由题意可知,枚举对象为连续序列的起点终点(这题有点坑,如果是两个数,一正一负,那么起点和终点相等的时候也就是单个正数的时候是最大的,但是能不能这样呢,最求试了两个情况,答案是起点可以等于终点。)
枚举范围:对于起点 int a -> [0,n-1] , 对于终点 int b -> [a,n-1]
判断条件: 每次枚举与之前的乘积比取较大的一个,用一个Max();就可以实现。
实现代码:
#include <iostream> using namespace std; long long judge(long long a, long long b) { if (a >= b) return a; else return b; } int count = 1; int main( int argc, char const *argv[] ) { int n; while ( cin >> n ) { int S[19] = {0}; for ( int i = 0; i < n; ++i ) { cin >> S[i]; } long long result = S[0] * S[1]; for ( int i = 0; i <= n - 1; ++i ) { for ( int j = i; j <= n - 1; ++j ) { long long temp = 1; for ( int k = i; k <= j; ++k ) { temp *= S[k]; } result = judge(result, temp); } } cout << "Case #" << count ++ << ": The maximum product is " << result << endl; cout << endl; } return 0; }
相关文章推荐
- 性能测试的步骤
- 转码问题
- tar 解压缩命令详解
- bzoj 2876: [Noi2012]骑行川藏 拉格朗日数乘
- 剑指offer面试题17——合并两个排序的链表
- SVN-两种存储方式的比较(BDB vs. FSFS)
- Linux命令-统计文件中的字节数、字数、行数:wc
- Windows10 如何会成为微软的新起点?
- 简单介绍win7下搭建apache+php+mysql开发环境
- 创业公司如何实施敏捷开发[转]
- 链表(C语言)
- Linux下执行的java命令重定向到文件中的方法
- Lowest Common Ancestor of a Binary Search Tree
- 几周内搞定Java的10个方法
- 关于错排的容斥定理的一些心得
- POJ 1258:Agri-Net Prim最小生成树模板题
- 图结构练习——最小生成树
- 使用Spring Boot快速构建应用
- cakePHP模型内置回调函数afterFind()的使用。
- 遍历Map和List的几种方法和性能比较