NO.1157 Litte Shop Of Flowers

动态规划
scanf和printf的确比cin和cout快得多,前者要16MS,而后者却要76MS.

#include<iostream.h>
#include<stdio.h>

void main(){
 int F,V,i,j,k,max=0;
 int value[101][101];
 int dp[101][101];                   //dp[i][j]存放的是第i朵花放在第j个花瓶时,前i束花的美观值之和的最大值

 scanf("%d%d",&F,&V);
 //cin>>F>>V;
 for(i=0;i<F;i++)
  for(j=0;j<V;j++)
  scanf("%d",&value[i][j]);

 for(i=0;i<F;i++)
  for(j=0;j<V;j++)
   dp[i][j]=-6000;

 for(i=0;i<V;i++)
  dp[0][i]=value[0][i];

 for(i=1;i<F;i++)

  for(j=i;j<V;j++){
    for(k=i-1;k<j;k++)
     if(dp[i][j]<(dp[i-1][k]+value[i][j]))                 //dp核心部分
          dp[i][j]=dp[i-1][k]+value[i][j];
  }
  
 for(i=F-1;i<V;i++) 
  if(dp[F-1][i]>max)
         max=dp[F-1][i];

  printf("%d",max);
 
}

posted @ 2009-05-28 13:01  大Vin  阅读(209)  评论(0)    收藏  举报