poj 1157 LITTLE SHOP OF FLOWERS(DP)
2014-10-31 11:15
302 查看
dp[i][j]表示处理到了第i束花,且第i束花在第j个花瓶里。
转移就是dp[i][j]=max(dp[i-1][k])+price[i][j] (枚举k,k的范围是从i-1到j)
注意这里面有负值,所以在写for循环的时候一定要注意处理边界,使得不合法情况都不会被访问到,否则可能会访问到非法的值为0的状态。
代码:
转移就是dp[i][j]=max(dp[i-1][k])+price[i][j] (枚举k,k的范围是从i-1到j)
注意这里面有负值,所以在写for循环的时候一定要注意处理边界,使得不合法情况都不会被访问到,否则可能会访问到非法的值为0的状态。
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define INF (-10000000) int dp[105][105]; int F,V; int a[105][105]; int main(){ scanf("%d%d",&F,&V); memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); for(int i=1;i<=F;i++){ for(int j=1;j<=V;j++){ scanf("%d",&a[i][j]); } } for(int i=1;i<=F;i++){ for(int j=i;j<=V-F+i;j++){ int tmp=INF; for(int k=i-1;k<j;k++){ tmp=max(tmp,dp[i-1][k]); } dp[i][j]=tmp+a[i][j]; } } int res=INF; for(int i=F;i<=V;i++){ res=max(res,dp[F][i]); } printf("%d\n",res); return 0; }
相关文章推荐
- POJ 题目1157 LITTLE SHOP OF FLOWERS(DP)
- 【DP】POJ-1157 LITTLE SHOP OF FLOWERS
- POJ 1157 LITTLE SHOP OF FLOWERS【基础DP】
- POJ 1157 LITTLE SHOP OF FLOWERS(DP)
- POJ 1157 LITTLE SHOP OF FLOWERS (数塔_dp)
- poj 1157 LITTLE SHOP OF FLOWERS——简单DP
- POJ1157_LITTLE SHOP OF FLOWERS_DP
- poj1157 LITTLE SHOP OF FLOWERS(dp)
- POJ 1157 LITTLE SHOP OF FLOWERS(坐标类DP)
- POJ 1157 LITTLE SHOP OF FLOWERS (插画的最大值_经典的动态规划DP)
- POJ 1157 LITTLE SHOP OF FLOWERS (DP)
- POJ 1157/SGU104 Little shop of flowers(DP)
- POJ 1157 LITTLE SHOP OF FLOWERS(DP)
- POJ 1157 LITTLE SHOP OF FLOWERS ( DP )
- poj 1157 LITTLE SHOP OF FLOWERS(DP)
- poj 1157 LITTLE SHOP OF FLOWERS 【简单DP】
- POJ 1157 LITTLE SHOP OF FLOWERS (线性dp)
- POJ 1157 LITTLE SHOP OF FLOWERS 水DP
- poj - 1157 - LITTLE SHOP OF FLOWERS(dp)
- POJ 1157 Little shop of flowers(DP,最优搭配)