洛谷 P1115 最大子段和

    科技2025-07-27  9

    题目链接:https://www.luogu.com.cn/problem/P1115


    用sum记录前缀和,如果当前前缀和小于0, 那就更新当前sum 为 0。同时,每一次让sum与结果ans去一个max,这里的ans记得初始化一个很小的数。

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int inf = 0x3f3f3f3f; int n; long long sum, res = -inf; int t = -inf; int main(){ cin >> n; while (n -- ){ int a; scanf("%d", &a); t = max(t, a); if (sum < 0) sum = 0; sum += a; res = max(res, sum); } if (t < 0) printf("%d\n", t); else printf("%lld\n", res); return 0; }
    Processed: 0.011, SQL: 8