zoukankan      html  css  js  c++  java
  • HDU 5234 Happy birthday【DP】

    题意:给出n*m的格子,每个格子的值为w[i][j],在值不超过k的时候,可以往右或者往下走,问从(1,1)走到(n,m)能够得到的最大的值

    类似于背包

    d[i][j][k]=maxx(d[i-1][j][k],d[i-1][j][k-w[i][j]]+w[i][j],d[i][j-1][k],d[i][j-1][k-w[i][j]]+w[i][j]);

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath> 
     5 #include<stack>
     6 #include<vector>
     7 #include<map> 
     8 #include<set>
     9 #include<queue> 
    10 #include<algorithm>  
    11 using namespace std;
    12 
    13 typedef long long LL;
    14 const int INF = (1<<30)-1;
    15 const int mod=1000000007;
    16 const int maxn=1000005;
    17 
    18 int w[1005][1005];
    19 int d[105][105][105];
    20 
    21 int maxx(int a,int b,int c,int d){
    22     int ans;
    23     ans=max(max(a,b),max(c,d));
    24     return ans;
    25 }
    26 
    27 int main(){
    28     int n,m,K;
    29     while(~scanf("%d %d %d",&n,&m,&K)){
    30         for(int i=1;i<=n;i++)
    31          for(int j=1;j<=m;j++) cin>>w[i][j];
    32          
    33          memset(d,0,sizeof(d));
    34          
    35          for(int i=1;i<=n;i++){
    36              for(int j=1;j<=m;j++){
    37                  for(int k=w[i][j];k<=K;k++){
    38                      d[i][j][k]=maxx(d[i-1][j][k],d[i-1][j][k-w[i][j]]+w[i][j],d[i][j-1][k],d[i][j-1][k-w[i][j]]+w[i][j]);
    39                  //    printf("d[%d][%d][%d]=%d
    ",i,j,k,d[i][j][k]);
    40                  }
    41                  
    42              }
    43          }
    44          
    45          int ans=-INF;
    46          for(int i=1;i<=K;i++) ans=max(ans,d[n][m][i]);
    47          printf("%d
    ",ans);        
    48     }
    49     return 0;
    50 }
    View Code

    加油~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • 相关阅读:
    团队展示&选题
    结对编程(JAVA实现)
    wc项目(node.js实现)
    复审与事后分析
    事后诸葛亮分析报告
    Alpha阶段项目复审
    测试与发布
    Scrum 冲刺第五篇
    Scrum 冲刺第一篇
    项目冲刺
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4526544.html
Copyright © 2011-2022 走看看