【HDOJ5783】Divide the Sequence(贪心)

来源:互联网 发布:js获取外部css样式 编辑:程序博客网 时间:2024/05/06 03:37

记录一个菜逼的成长。。

Divide the Sequence
把长度为n的序列分成尽量多的连续段,使得每一段的每个前缀和都不小于0。保证有解。 从后往前贪心分段即可。
/(ㄒoㄒ)/~~

#include <cstdio>#include <cstring>typedef long long LL;const int maxn = 1000000 +10;LL sum[maxn];int main(){    int n;    while(~scanf("%d",&n)){        memset(sum,0,sizeof(sum));        for( int x,i = 1; i <= n; i++ ){            scanf("%d",&x);            sum[i] = sum[i-1] + x;        }        int ans = 0;        LL tmp = sum[n];        for( int i = n; i > 0; i-- ){            if(tmp - sum[i-1] >= 0 && sum[i-1] >= 0){                ans++;                tmp = sum[i-1];            }        }        printf("%d\n",ans);    }    return 0;}
0 0