51nod oj 1050 循环数组最大子段和 【DP】

    xiaoxiao2025-05-19  10

    题目链接:1050

    最大正子段和----与总和-最小负字段和------的最大值

    代码:

    #include<cstdio> #include<algorithm> using namespace std; int shu[110000]; int main() { int n;scanf("%d",&n); long long sum,s=0,ss,ans; for (int i=0;i<n;i++) { scanf("%d",&shu[i]); s+=shu[i]; } ans=0,sum=0;ss=0; for (int i=0;i<n;i++) { if (sum<0) sum=shu[i]; else sum+=shu[i]; ss=max(ss,sum); } sum=0; for (int i=0;i<n;i++) { if (sum>0) sum=shu[i]; else sum+=shu[i]; ans=min(ans,sum); } ans=s-ans; ans=max(ans,ss); printf("%lld\n",ans); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1299054.html
    最新回复(0)