http://acm.hdu.edu.cn/showproblem.php?pid=4561

求连续最大积。

他妈的狗逼思路到底咋说。。。。。

思路是 %&*()*(&……))*)*&)……%……%**(*()()——+(**(……&*……%&*……Y%^&%%^*&&(&*(&*(*&()*&(**……&%……&

%&……%&……&(&……* ())&(**&……%*&&*((——+——)&(**……&%……&……*&%¥S%^&$**&%%&^A *&^&***(^U(*)()^(*&^&*(()&^**&*$%YT^&^%&^^&%%^%&%^&%&^

%&^&(^&&(*&_)(&^*^U&*&OP)_(+_{()*&*&%^&%$&^$^%$#%^&*^&)(**)_(_+................................................

懂了吧。。。。。

我来翻译;

其实思路就是找断点,断点就是0,也就是以0为分界,将所给的数字串分成k段 比如2220-2-2-22022;

就可以分成222  -2-2-22  22三段,因为如果选入0的话乘积肯定是0,题目说积小于等于0的结果都为0,所以以0分界。

那么就是计算每段的2的个数,和-2的个数,如果段内的-2个数是偶数个,那么这段的长度直接和maxx比较,更新maxx,

如果是奇数个,假设n个的话从段的左边循环到有边直到遇到第n个-2跳出,那么前面不就是偶数个-2了么。

那么再从右端循环到左端,直到遇到第n个-2跳出,比较两次的大小,大的就是本段连续最大积。

因为要连续而且又只多一个-2,所以说最大要么左连续,要么右连续。

最后maxx就是最大的了;

 1 #include<stdio.h>
2 #include<iostream>
3 #include<stdlib.h>
4 #include<string.h>
5 #include<math.h>
6 typedef struct pp
7 {
8 int x;
9 int y;
10 int x1;
11 int y1;
12 } ss;
13 using namespace std;
14 int main(void)
15 {
16 int a[10005];
17 ss cou[10005];
18 int n,i,j,k,p,q;
19 scanf("%d",&n);
20 for(i=1; i<=n; i++)
21 {
22 scanf("%d",&k);
23 for(j=0; j<k; j++)
24 {
25 scanf("%d",&a[j]);
26 cou[j].x=0;
27 cou[j].y=0;
28 cou[j].x1=0;
29 cou[j].y1=0;
30 }
31 if(a[0]>0)
32 {
33 cou[0].x++;
34 }
35 else if(a[0]<0)
36 {
37 cou[0].y++;
38 }
39 int maxx=0;
40 for(j=1; j<k; j++)//从断点到到本个点有多2 -2(从左循环)
41 {
42 if(a[j]>0)
43 {
44 cou[j].x=cou[j-1].x+1;
45 cou[j].y=cou[j-1].y;
46 }
47 else if(a[j]<0)
48 {
49 cou[j].y=cou[j-1].y+1;
50 cou[j].x=cou[j-1].x;
51 }
52
53 }
54 if(a[k-1]>0)
55 {
56 cou[k-1].x1++;
57 }
58 else if(a[k-1]<0)
59 {
60 cou[k-1].y1++;
61 }
62 for(j=k-2; j>=0; j--)//从断点到到本个点有多2 -2(从右循环)
63 {
64 if(a[j]>0)
65 {
66 cou[j].x1=cou[j+1].x1+1;
67 cou[j].y1=cou[j+1].y1;
68 }
69 else if(a[j]<0)
70 {
71 cou[j].y1=cou[j+1].y1+1;
72 cou[j].x1=cou[j+1].x1;
73 }
74
75 }
76 for(j=0; j<k; j++)
77 {
78 if(cou[j].y%2==0)
79 {
80 if(maxx<cou[j].x+cou[j].y)
81 {
82 maxx=cou[j].x+cou[j].y;
83 }
84 }
85 if(cou[j].y1%2==0)
86 {
87 if(maxx<cou[j].x1+cou[j].y1)
88 {
89 maxx=cou[j].x1+cou[j].y1;
90 }
91 }
92 }
93 printf("Case #%d: %d\n",i,maxx);
94 }
95 return 0;
96 }

hdu-4561 连续最大积( 水题)的更多相关文章

  1. hdu 1005:Number Sequence(水题)

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  2. hdu 2041:超级楼梯(水题,递归)

    超级楼梯 Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepted Su ...

  3. HDU 5578 Friendship of Frog 水题

    Friendship of Frog Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.ph ...

  4. HDU 5590 ZYB's Biology 水题

    ZYB's Biology Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid ...

  5. HDU 5538 L - House Building 水题

    L - House Building Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.ph ...

  6. hdu 1018:Big Number(水题)

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  7. HDOJ/HDU 1328 IBM Minus One(水题一个,试试手)

    Problem Description You may have heard of the book '2001 - A Space Odyssey' by Arthur C. Clarke, or ...

  8. HDOJ(HDU) 2090 算菜价(简单水题、)

    Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input ...

  9. HDOJ(HDU) 1555 How many days?(水题)

    Problem Description 8600的手机每天消费1元,每消费K元就可以获赠1元,一开始8600有M元,问最多可以用多少天? Input 输入包括多个测试实例.每个测试实例包括2个整数M, ...

随机推荐

  1. 分配器——allocators

    任何容器的构建都离不开分配器,分配器顾名思义就是分割配置内存资源的组件,分配器的效率直接影响力容器的效率. operator new()和malloc() C/C++底层都是通过malloc()调用系 ...

  2. jenkins+Gitlab安装及初步使用

    安装包下载地址:https://packages.gitlab.com/gitlab/gitlab gitlab-cerpm 包国内下载地址: https://mirrors.tuna.tsinghu ...

  3. vue 第三方图标库

    "font-awesome": "^4.7.0", "dependencies": { "axios": "^ ...

  4. Shell脚本实现根据文件的修改时间来分类文件

    #!/bin/bash # exctute # ./mod.sh file_type input_folder output_folder # ./mod.sh *.txt /tmp /data/ # ...

  5. java配置文件的使用 —— 设置一个类为单例模式

    阅读本文章前建议先阅读:java通过JDBC访问sqlserver数据库 一.使用原因:通过JDBC连接数据库时有时会需要连接不同的数据库,而jar包.连接url.用户名和密码等都是写定在程序中,不便 ...

  6. 走进Spring Boot源码学习之路和浅谈入门

    Spring Boot浅聊入门 **本人博客网站 **IT小神 www.itxiaoshen.com Spring Boot官网地址:https://spring.io/projects/spring ...

  7. Mysql从头部署多个版本

    目录 一.环境准备 二.下载安装包 三.Mysql-5.6单独部署 四.Mysql-5.7单独部署 五.添加到多版本控制 六.muliti使用 一.环境准备 系统:centos7.3一台 软件版本:m ...

  8. Python pyecharts绘制柱状图

    本文摘抄至https://05x-docs.pyecharts.org/#/zh-cn/charts_base?id=bar%ef%bc%88%e6%9f%b1%e7%8a%b6%e5%9b%be%e ...

  9. Mybatis中原生DAO实现和Mapper动态代理实现

    Mybatis开发dao的方法通常用两种,一种是传统DAO的方法,另一种是基于mapper代理的方法. 一.传统DAO方式开发 1.sql语句映射文件编写 User.xml <?xml vers ...

  10. WHUCTF PWN题目

    花了大概两天时间来做WHUCTF的题目,第一次排名这么靠前.首先感谢武汉大学举办这次萌新赛,也感谢fmyy的师傅的耐心指导,让我第一次做出堆的题目来. pwnpwnpwn 这是一道栈题目,32位程序, ...