1 条题解

  • 1
    @ 2021-10-7 14:55:45
    #include<iostream>
    #define N 110000
    using namespace std;
    int x,y,n,a[N],b[N],f[N],g[N];
    int main()
    {
    	cin>>n;
    	for(int i=n;i>=1;i--)cin>>a[i];
    	for(int i=2;i<=n;i++)a[i]+=a[i-1];
    	for(int i=1;i<=n;i++)
    	{
    		while(x<y&&g[b[x+1]]+a[b[x+1]]<=a[i])x++;
    		f[i]=f[b[x]]+1;
    		g[i]=a[i]-a[b[x]];
    		while(x<=y&&g[b[y]]+a[b[y]]>=g[i]+a[i])y--;
    		b[++y]=i;
    	}
    	cout<<f[n];
    	return 0;
    }
    
    • 1

    信息

    ID
    241
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    30
    已通过
    21
    上传者