zoukankan      html  css  js  c++  java
  • NOJ1142-最大连续和

    最大连续和

    时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
    总提交 : 1282            测试通过 : 230 

    比赛描述

    给出一个长度为n的序列A1,A2,…,An,求最大的连续和。要求找到1≤i≤j ≤n,使得Ai+Ai+1+…+Aj尽量大。

    输入

    1行输入一个正整数n(n≤1000),此后输入n行,每行给出一个测试用例,包含正整数m和m个整数,以空格分隔各个数。

    输出

    输出n行。对于每一个测试用例,在一行输出最大的连续和。

    样例输入

    2
    3 1 -1 3
    3 1 2 3

    样例输出

    3
    6

     

    题目来源

    刘汝佳《算法竞赛入门经典》

     

    思路:好多OJ上都有这道题,也算是个典型问题吧~~如果要枚举是不可行的,会超时。递推效率会提高但也会超时。最好的还是递归分治没有超时。在蓝桥杯的OJ上也有这道题,同样三种思路测了一下,前两种都是超时的。

     

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <cstring>
     4 #define MAX 100000 + 10
     5 using namespace std;
     6 
     7 int A[MAX];
     8 int maxsum( int *A, int x, int y )
     9 {
    10     int v, L, R, max;
    11     if( y - x == 1 )    return A[x];
    12     int m = x + ( y - x ) /2;
    13     int maxs = std::max( maxsum( A, x, m ), maxsum( A, m, y ) );
    14     v = 0;
    15     L = A[m - 1];
    16     for( int i = m - 1; i >= x; i-- )
    17         L = std::max( L, v += A[i] );
    18     v = 0;
    19     R = A[m];
    20     for( int i = m; i < y; i++ )
    21         R = std::max( R, v += A[i] );
    22     return std::max( maxs, L + R );
    23 }
    24 
    25 int main()
    26 {
    27     int n, i;
    28     scanf( "%d", &n );
    29     //char ch;
    30     while( n > 0 ) {
    31         int m;
    32         scanf( "%d", &m );
    33         for( i = 0; i < m; i++ ) {
    34             scanf( "%d", &A[i] );
    35         }
    36         int sum = maxsum( A, 0, m );
    37         printf( "%d
    ", sum );
    38         n--;
    39     }
    40     return 0;
    41 }

     

     

  • 相关阅读:
    如何注册一个ens域名
    storj
    Polygon
    拜占庭容错
    10秒钟完成metamask上任意公链主网添加
    Logistic Regression
    Normal Equations
    神经网络学习笔记 lecture3:The backpropagation learning proccedure
    Three Types of Learning
    Exercise: Logistic Regression and Newton's Method
  • 原文地址:https://www.cnblogs.com/lzjtdxfxl/p/5375025.html
Copyright © 2011-2022 走看看