Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

太高兴啦,小菜分享代码

Posted by 0712800109 at 2008-11-04 13:24:36 on Problem 3186
#include<stdio.h>
int mmg[2000][2000];
int mg[2000];
int main()
{
	int n,i,j,sum,t,max;
	while(scanf("%d",&n)!=EOF){
		for(i=0;i<n;i++) scanf("%d",&mg[i]);
		if(n==1){printf("%d\n",mg[0]);continue;}
		sum=0;mmg[0][n-1]=0;t=1;
		for(i=n-2;i>=0;i--){
			sum+=mg[i+1]*t;
			t++;
			mmg[0][i]=sum;
		}
		mmg[0][0]+=mg[0]*n;
		max=mmg[0][0];
		sum=0;t=1;
		for(i=1;i<n;i++){
			sum+=mg[i-1]*t;
			t++;
			mmg[i][n-1]=sum;
		}
		mmg[n-1][n-1]+=mg[n-1]*n;
		if(max<mmg[n-1][n-1]) max=mmg[n-1][n-1];
		for(i=1;i<n-1;i++)
			for(j=n-2;j>=i;j--){
				t=i+n-j-1;
				mmg[i][j]=(mmg[i-1][j]+mg[i-1]*t)>(mmg[i][j+1]+mg[j+1]*t)?(mmg[i-1][j]+mg[i-1]*t):(mmg[i][j+1]+mg[j+1]*t);
				if(i==j){
					mmg[i][j]+=mg[i]*n;
					if(max<mmg[i][j]) max=mmg[i][j];
				}
			}
			printf("%d\n",max);
	}
}
			


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator