zoukankan      html  css  js  c++  java
  • 【动态规划】最大子串和(和前面那个求子串基本一样)

    【动态规划】最大子串和

    时间限制: 1 Sec  内存限制: 128 MB

    题目描述

    给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。


    输入

    第一行是一个整数N(N<=10)表示测试数据的组数)
    每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的一行里有n个整数I(-100=<I<=100),表示数列中的所有元素。(0<n<=1000000)

    输出

    对于每组测试数据输出和最大的连续子串的和。

    样例输入

    1
    5
    1 2 -1 3 -2
    

    样例输出

    5

     1 #include <iostream>
     2 #define INF 0x3f3f3f
     3 using namespace std;
     4 
     5 int N,n,a,sum,maxx;
     6 
     7 int main()
     8 {
     9     while(cin>>N)
    10     {
    11         while(N--)
    12         {
    13             cin>>n;
    14             sum=0;
    15             maxx=-INF;
    16             for(int i=0;i<n;i++)
    17             {
    18                 cin>>a;
    19                 if(a>=sum+a)
    20                     sum=a;
    21                 else
    22                     sum+=a;
    23                 if(maxx<sum)
    24                     maxx=sum;
    25             }
    26             cout<<maxx<<endl;
    27         }
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    hdu2037 经典贪心入门
    hdu1045 dfs
    poj2243 bfs
    poj2488 dfs
    poj1111 DFS
    单词统计
    冲刺第五天
    七周总结学习笔记
    冲刺第四天
    冲刺第三天
  • 原文地址:https://www.cnblogs.com/asuml/p/5727046.html
Copyright © 2011-2022 走看看