UVa11059 Maximum Product (Two Pointers)

链接:http://acm.hust.edu.cn/vjudge/problem/27946分析:Two Pointers搞搞。
 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4
 5 typedef long long LL;
 6
 7 int n, a[20];
 8
 9 LL gao() {
10     LL ans = 0;
11     for (int L = 0; L < n; L++) {
12         LL res = 1;
13         for (int R = L; R < n; R++) {
14                 res *= a[R];
15                 ans = max(ans, res);
16         }
17     }
18     return ans;
19 }
20
21 int main() {
22     int kase = 0;
23     while (cin >> n) {
24         for (int i = 0; i < n; i++) cin >> a[i];
25         printf("Case #%d: The maximum product is %lld.\n\n", ++kase, gao());
26     }
27     return 0;
28 }
时间: 2024-10-10 21:10:26

UVa11059 Maximum Product (Two Pointers)的相关文章

UVA11059 Maximum Product

问题链接:UVA11059 Maximum Product.基础级练习题,用C语言编写程序. 题意简述:输入n个整数序列,有正有负,求这个序列中最大连续累乘的子序列,其最大的值为多少.如果结果为负数,则输出0. 问题分析:如果整数序列中有0,则用0分段然后分别计算.对于每个分段(可能只有一个分段),其中没有0,如果其中有偶数个负数,则将分段中所有的数相乘就是所求结果.如果分段中有奇数个负数,那么最大的累乘出现在第1个负数的右边开始的子序列或从开始到最后1个负数左边的子序列. AC的C语言程序如下

UVA 10106 Product (大数相乘)

Product The Problem The problem is to multiply two integers X, Y. (0<=X,Y<10250) The Input The input will consist of a set of pairs of lines. Each line in pair contains one multiplyer. The Output For each input pair of lines the output line should c

Codeforces C. Maximum Value(枚举二分)

题目描述: Maximum Value time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a sequence a consisting of n integers. Find the maximum possible value of (integer remainder of *a**i* divi

UVa 11059 Maximum Product(简单枚举7.1)使用longlong,输出格式%lld

这题数据最大18位,应该用Long long 粗心在几个地方(函数返回值,中间比较值max pro)用了Int,提交了好几次 #include<stdio.h> long long func(int *a,int head,int rear){//一开始用了int long long pro=a[head];//注意这里初值不能赋值为1 2\n 0 0这个通不过 if(head==rear) return a[head]; else for(int i=head+1;i<=rear;i+

UVA 11059 Maximum Product(枚举start+end)

题目大意: 就是说给你n个数字,然后求出连续序列的最大和.如果ans为负数就输出0,要么就输出这个ans. 解题思路: 其实我们只需要枚举起点和终点,然后考虑所有的情况就可以了,有点类似于求解最大连续和的问题. 唯一的不同就是每次都要初始化t = 1, t*=a[j].注意long long.因为最多有18个数字,且每个数字的 最大值为10,那么他们的乘积是不会超过10^18的. 代码: # include<cstdio> # include<iostream> # include

UVA OJ-11095 Maximum Product(暴力求解法)

Given a sequence of integers S = {S1, S2, ..., Sn}, you should determine what is the value of the maximum positive product involving consecutive terms of S. If you cannot find a positive sequence, you should consider 0 as the value of the maximum pro

product(1.3)需求分析

之前讲过需求采集的事儿,需求采集了很多,但从哪里着手?用户帮我们想好了怎么做,照用户说的做吗? 关于这一点,<人人都是产品经理>的作者苏杰,用了这样一个title:听用户说但不要照着做. 1.明确我们的价值 对于采集的需求,首先要明确的知道,一个是用户需求,一个是产品需求,这中间的转化过程,就是这篇blog的主题--需求分析. 用户需求 VS 产品需求 用户需求:从用户采集到的.用户自以为的需求,并且经常表达为用户解决方案: 产品需求:经过分析,找到的真实需求,并且表达为产品解决方案: 需求分

3thweek2。uva11059 maximum product.

题意简概: 输入n个元素组成的序列S,你需要找一个乘积最大的连续子序列.如果这个最大的乘积不是正数,应输出0,表示无解.1<=n<=18,-10<=Si<=10. Sample Input32 4 -352 5 -1 2 -1Sample OutputCase #1: The maximum product is 8.Case #2: The maximum product is 20. 简单分析: 连续子序列有两个要素:起点和终点.因此只要枚举起点和终点即可.由于每个元素的绝对值

Codeforces1238F. The Maximum Subtree(树形dp)

题目链接:传送门 思路: 题意说用线段的相交作为边,来构造树,所以不存在大于等于3个的线段两两相交,否则会构成环.因而构造出的树中,每个点最多只会与2个度大于1的节点相邻. 不妨把1设为树根,用degu表示原树中节点u的度,ans表示答案. 用fu表示:假设以u为根的子树,已经有一条边连向了一个度大于1的点时,所能构成的最大的“子树的子树”的大小,则有: fu = 1,if degu=1.叶子本身就是一个点,大小为1. fu = max{v是u的子节点 | fv} + degu-2 + 1.所有