题意:

连续最大积

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)

Total Submission(s): 1354    Accepted Submission(s): 458

Problem Description

小明和他的好朋友小西在玩一个游戏,由电脑随机生成一个由-2,0,2三个数组成的数组,并且约定,谁先算出这个数组中某一段连续元素的积的最大值,就算谁赢!

比如我们有如下随机数组:

2 2 0 -2 0 2 2 -2 -2 0 

在这个数组的众多连续子序列中,2 2 -2 -2这个连续子序列的积为最大。

现在小明请你帮忙算出这个最大值。 

 

Input

第一行输入一个正整数T,表示总共有T组数据(T <= 200)。

接下来的T组数据,每组数据第一行输入N,表示数组的元素总个数(1<= N <= 10000)。

再接下来输入N个由0,-2,2组成的元素,元素之间用空格分开。

 

Output

对于每组数据,先输出Case数。

如果最终的答案小于等于0,直接输出0

否则若答案是2^x ,输出x即可。

每组数据占一行,具体输出格式参见样例。

 

Sample Input

2

2

-2 0

10

2 2 0 -2 0 2 2 -2 -2 0

 

Sample Output

Case #1: 0

Case #2: 4


思路:

     和最大连续子序列差不多,当0的时候置为0,要注意的事还有开个东西,记录当前有多少个负数,更新的时候只有偶数的时候在更新,就这样,果断敲完,果断wa了,哎! 其实没考虑到这个问题,-2 2 2 2 2 2  我们在倒着跑一便就能排除这种情况了,因为毕竟只有奇偶两种情况...还有一点就是,如果最小的是-2那么只哟一种情况 就是只哟一个数字 并且这个数字是-2,自己稍微想下就明白,不解释...


#include<stdio.h>

#define N (10000 + 500)

int
num[N]; int main ()
{
int
t ,n ,i ,ans_max ,cas = 1;
scanf("%d" ,&t);
while(
t--)
{

scanf("%d" ,&n);
int
mk0 = 0;
for(
i = 1 ;i <= n ;i ++)
{

scanf("%d" ,&num[i]);
if(
num[i]) mk0 = 1;
}

printf("Case #%d: " ,cas ++);
if(!
mk0 || n == 1 && num[1] == -2)
{

printf("0\n");
continue;
}

ans_max = 0;
int
now = 0;
int
ss = 0;
for(
i = 1 ;i <= n ;i ++)
{
if(!
num[i])
{

ss = now = 0;
continue;
}
if(
num[i] < 0) ss ++;
now ++;
if(
ss % 2 == 0 && ans_max < now)
ans_max = now;
}

now = 0;
ss = 0;
for(
i = n ;i >= 1;i --)
{
if(!
num[i])
{

ss = now = 0;
continue;
}
if(
num[i] < 0) ss ++;
now ++;
if(
ss % 2 == 0 && ans_max < now)
ans_max = now;
}

printf("%d\n" ,ans_max);
}
return
0;
}

hdu4561 连续最大积的更多相关文章

  1. hdu-4561 连续最大积( 水题)

    http://acm.hdu.edu.cn/showproblem.php?pid=4561 求连续最大积. 他妈的狗逼思路到底咋说..... 思路是 %&*()*(&--))*)*& ...

  2. 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray

    题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...

  3. Java for LeetCode 152 Maximum Product Subarray

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

  4. hdu 4561 模拟小题

    连续最大积 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Subm ...

  5. Leetcode 记录(101~200)

    Now, I want to just use English to explain the problem, it's about two month before the interview, s ...

  6. 【动态规划】Part1

    1. 硬币找零 题目描述:假设有几种硬币,如1.3.5,并且数量无限.请找出能够组成某个数目的找零所使用最少的硬币数. 分析:   dp [0] = 0           dp [1] = 1 + ...

  7. LeetCode practice

    子集和问题:给定一组数和一个值,从这组数中选出若干个数使其和为给定的值.这是个NPC问题. 1.https://leetcode.com/problems/counting-bits/#/soluti ...

  8. Algo: maxSubArray vs. maxProduct

    这两个问题类似,都可利用动态规划思想求解. 一.最大连续子序列和 https://leetcode.com/problems/maximum-subarray/description/ https:/ ...

  9. X000011

    P1890 gcd区间 \(\gcd\) 是满足结合律的,所以考虑用 ST 表解决 时间复杂度 \(O((n\log n+m)\log a_i)\) 考虑到 \(n\) 很小,你也可以直接算出所有的区 ...

随机推荐

  1. C语言中储存类别和内存管理

    C语言中储存类别和内存管理 储存类别 C语言提供了多种储存类别供我们使用,并且对应的有对应的内存管理策略,在了解C中的储存类型前,我们先了解一下与储存类型相关的一些概念. 1. 基础概念 对象:不同于 ...

  2. Java BasicNameValuePair怎么传数组类型的参数?

    BasicNameValuePair 传数组的话可以这样传 map.put("ids[]", 1); map.put("ids[]", 2);

  3. mobx 的学习

    1.初始化项目 第一步用create-react-app初始化一个项目,并打开webpack配置项 npx create-react-app react-mobx-demo cd react-mobx ...

  4. Flutter教程- Dart语言规范-知识点整理

    Flutter教程- Dart语言知识点整理 Dart语言简介 Dart语言介绍 ① 注释的方式 ② 变量的声明 ③ 字符串的声明和使用 ④ 集合变量的声明 ⑤ 数字的处理 ⑥ 循环的格式 ⑦ 抛异常 ...

  5. python并发利器tomorrow

    tomorrow是我最近在用的一个爬虫利器,该模块属于第三方的模块,使用起来非常的方便,只需要用其中的threads方法作为装饰器去修饰一个普通的函数,既可以达到并发的效果,本篇将用实例来展示tomo ...

  6. 【死磕JVM】一道面试题引发的“栈帧”!!!

    前言 最近小农的朋友--小勇在找工作,开年来金三银四,都想跳一跳,找个踏(gao)实(xin)点的工作,这不小勇也去面试了,不得不说,现在面试,各种底层各种原理,层出不穷,小勇就遇上了这么一道面试题, ...

  7. 二叉树的建立与遍历(c语言)入门

    树其实在本质上就是一对多,链表就是一对一. 二叉树的建立: 这里的代码采用的是最粗暴的创建方法,无实际用处.但初次学习二叉树可以通过这个创建方法更好的理解二叉树. 二叉树的遍历: 遍历在大体上分为递归 ...

  8. Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)

    1.简介 前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的.这一篇宏哥 ...

  9. sqli-labs系列——第二关

    less2 and 1=1有回显,and 1=2无回显,为数值型注入 order by 4–+报错,有3行 查询数据库名 ?id=0' union select 1,(select group_con ...

  10. 显示IPC信息--ipcs

    ipcs                                       显示共享内存,消息队列, 信号量全部的IPC ipcs -q                            ...