关闭

UVa11059 Maximum Product

标签: 枚举
125人阅读 评论(0) 收藏 举报
分类:

来源:《算法竞赛入门经典(第二版)》例题7-2、UVa11059

题意描述:
给定一个序列,求各元素之积最大的连续子序列。
题目分析
最标准的枚举题,没啥好说的。乘积上限是1018,用long long足以,没有非要写大整数。哦对了,UVa的特点是不少题输出格式特麻烦,小心看题远离PE。

//  Created by wander on 16/5/27.
//  Copyright © 2016年 W4anD0eR96. All rights reserved.
//  UVa11059 Maximum Product
//  类型:枚举-子区间枚举

#include "bits/stdc++.h"
using namespace std;

int n, kase;

int main() {
#ifdef DEBUG
  freopen("in", "r", stdin);
  freopen("out", "w", stdout);
#endif
  while (~scanf("%d", &n)) {
    // input and pre-process
    vector<long long> v;
    long long res = 0, t = 0;
    for (int i = 0; i < n; i += 1) {
      scanf("%lld", &t); v.push_back(t);
    }
    // work
    for (int i = 0; i < n; i += 1)            // 枚举起点
      for (int j = i; j < n; j += 1) {        // 枚举终点,注意只有一个数的子区间
        t = 1; for (int k = i; k <= j; k += 1) t *= v[k];
        if (t > res) res = t;
      }
    // output
    printf("Case #%d: The maximum product is %lld.\n\n", (kase += 1), res);
  }
  return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9550次
    • 积分:571
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类