码迷,mamicode.com
首页 > 其他好文 > 详细

最大数

时间:2016-04-28 00:04:28      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

第一部分:题目

最大的数

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
 
描述
小明和小红在打赌说自己数学学的好,于是小花就给他们出题了,考考他们谁NB,题目是这样的给你N个数
在这n个数之间添加N-1个*或+,使结果最大,但不可以打乱原顺序,请得出这个结果
1 3 5
结果是(1+3)*5=20;最大
可以添加若干个括号,但一定要保证配对,但是每两个数之间只可能有一个*或+
数列最前和最后不应有+或乘
小明想赢小红但是他比较笨,请你帮帮他
 
输入
多组测试数据以EOF结束,每组有一个n(n<10000),然后有n个正整数a[i](1<=a[i]<=20)
输出
输出最大的结果由于结果比较大,结果对10086取余
样例输入
3
1 2 3
3
5 1 2
样例输出
9
15

第二部分:代码

/*
对于1来说:
1,两端的1加到相邻的数上,然后自己置为0。
2,如果1处在中间,那么加到相邻较小的数上;如果两个数相等,优先加到左边。
注意:如果左边是2的话,不管它是不是较小的加给它。因为3*m>2*(m-1)。当然如果m
小于2的话就不对了。那么m只能等于1。其实当m等于1时,比如2 1 1。结果都是4:
(2+1)+1==2*(1+1)。 
*/
#include<stdio.h>
int s[10005];
int n;
void repai(int index)//每当遇到1,处理后把数组往前缩进。当然可以置0,加一个判断就好 
{
    int i;
    for(i=index;i<n-1;i++)
    {
        s[i]=s[i+1];
    }
    n--;//数组长度减一 
}
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        int i;
        for(i=0;i<n;i++)
        {
            scanf("%d",&s[i]);
        }
        int max;
        if(n==1)
        {
            max=s[0];
        }
        else
        {
            if(s[0]==1)
            {
                s[1]++;
            }
            if(s[n-1]==1)
            {
                s[n-2]++;
            }
            for(i=1;i<n-1;i++)
            {
                if(s[i]==1)
                {
                    if(s[i-1]==2)
                    {
                        s[i-1]++;
                    }
                    else
                    {
                        if(s[i-1]<=s[i+1])
                        {
                            s[i-1]++;
                        }
                        else
                        {
                            s[i+1]++;
                        }
                    }
                    repai(i);
                    i--;
                }
            }
            max=1;
            for(i=0;i<n;i++)
            {
                if(s[i]!=0)
                {
                    max*=s[i]; 
                    max%=10086;
                }
            }
        }
        printf("%d\n",max); 
    }
    return 0;
}

 

最大数

标签:

原文地址:http://www.cnblogs.com/xiangguoguo/p/5440733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!