Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:弱问100+MS的大牛是如何做的~~我O(n)的做法也400+(附代码,请指教)In Reply To:弱问100+MS的大牛是如何做的~~我O(n)的做法也400+(附代码,请指教) Posted by:GreenBird at 2011-03-29 04:46:57 > #include<cstdio> > int t,n,a[50000],b[50000],c[50000],i,temp,max; > int main() > { > scanf("%d",&t); > while(t--){ > scanf("%d",&n); > for(i=0;i<n;i++)scanf("%d",&a[i]); > b[0]=temp=a[0]; > for(i=1;i<n;i++){ > temp=a[i]+temp>a[i]?a[i]+temp:a[i]; > b[i]=temp>b[i-1]?temp:b[i-1]; > } > c[n-1]=temp=a[n-1]; > for(i=n-2;i>=0;i--){ > temp=a[i]+temp>a[i]?a[i]+temp:a[i]; > c[i]=temp>c[i+1]?temp:c[i+1]; > } > max=b[0]+c[1]; > for(i=2;i<n;i++)max=b[i-1]+c[i]>max?b[i-1]+c[i]:max; > printf("%d\n",max); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator