zoukankan      html  css  js  c++  java
  • NYOJ44-子串和-(尺取法)

    题目描述:

    给定一整型数列{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<stdio.h>
     2 #include<math.h>
     3 #include<string.h>
     4 #include<algorithm>
     5 #include<string>
     6 #include<vector>
     7 #include<iostream>
     8 #include<set>
     9 #include<cstring>
    10 #define inf 0x3f3f3f3f
    11 using namespace std;
    12 #define ll long long
    13 
    14 int a[1000086];
    15 
    16 int main()
    17 {
    18     int t;
    19     scanf("%d",&t);
    20     while(t--)
    21     {
    22         int maxx=-inf,sum=0,x,n;
    23         scanf("%d",&n);
    24         for(int i=0;i<n;i++)
    25         {
    26             scanf("%d",&x);
    27             sum+=x;
    28             if(maxx<sum)///每次更新最大值
    29                 maxx=sum;
    30             if(sum<0)///如果前面这些数加起来比0还小,那加他们干嘛?sum清空,重新累加
    31                 sum=0;
    32         }
    33         printf("%d
    ",maxx);
    34     }
    35     return 0;
    36 }
  • 相关阅读:
    python urllib urllib2
    python 标准库获取网络信息
    dell N1500 安全配置
    python jinjia2模板使用
    flask-admin
    github使用
    python中文处理
    C++输入和输出中进制问题
    hdu1708(C++)
    hdu1017(C++)
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/10505965.html
Copyright © 2011-2022 走看看