【dp】 poj 1157

时间:2024-04-23 19:35:00

不错的dp入门题  画出dp矩阵  每个dp【i】【j】是由“其上”的状态或是“其左上”的状态转化而来,那我们选对角线和上边进行三角dp推导

#include<stdio.h>
#include <iostream>
using namespace std;
#define MAX 110
int value[MAX][MAX];
int f[MAX][MAX];
int F,V;
int main()
{
// freopen("in.txt","r",stdin);
 int i,j;
 scanf("%d%d",&F,&V);
 ;i<F;i++){
  ;j<V;j++){
   scanf("%d",&value[i][j]);
  }
 }
 f[][]=value[][];
 ;i<V;i++)
        f[][i]=max(f[][i-],value[][i]);//对第1束花的初始化
 ;i<F;i++)
  f[i][i]=f[i-][i-]+value[i][i];  //第i束花插入i个瓶子初始化,因为i束花插i个瓶子,只能按编号一个一个的插
 ;i<F;i++){
  ;j<V;j++){
    f[i][j]=max(f[i-][j-]+value[i][j],f[i][j-]);
  }
 }
 printf(][V-]);
 ;
}