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

还是得感谢算导啊!!DP第一题(附代码)

Posted by zjp at 2009-08-22 15:25:47 on Problem 3176
#include <stdio.h>   
   int main ()
   {
      int a[350][350];int n;int N;int max,i,j,k;int m;
      for(i=0;i<350;i++)
         for (j=0;j<350;j++)
           a[i][j]=0;
      scanf("%d",&N);
      for(k=0;k<N;k++)
	      for (m=0;m<=k;m++)
           scanf("%d",&a[k][m]);
		
    

           a[1][0]=a[0][0]+a[1][0];
           a[1][1]=a[0][0]+a[1][1];
          
		   for (n=2;n<N;n++)
           {  a[n][0]=a[n-1][0]+a[n][0];
               	a[n][n]=a[n-1][n-1]+a[n][n];
			   for (j=1;j<n;j++)
               {
				
				
                  if (a[n-1][j]>a[n-1][j-1])
				    a[n][j]=(a[n-1][j]+a[n][j]);
				  else 
					  a[n][j]=(a[n-1][j-1]+a[n][j]);
				  
			  }	
		   }	
               	
          max=a[N-1][0];
         for (k=0;k<N;k++)
              if (a[N-1][k]>max)
                	max=a[N-1][k];
              
		  
		  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