zoukankan      html  css  js  c++  java
  • 杭电2391--Filthy Rich(DP)

    题目意思:在一个n*m的矩阵中,不同的位置有不同重量的黄金,从矩阵的左上角开始,到右下角,只能向下或向右走,问最多能获得多少黄金?
    思路:算出每个点到起点的最大值,找自己左面,上面,左上面的最大值加上自己即为最大值。
     1 #include <iostream>    //dp
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 int m[1100][1100];      //m数组放矩阵
     7 int sum=0,r,c;
     8 int dp(int x,int y)
     9 {
    10     return max(m[x-1][y],max(m[x][y-1],m[x-1][y-1]));
    11 }
    12 int main()
    13 {
    14     int n;
    15     scanf("%d",&n);
    16     for(int z=1;z<=n;z++)
    17     {
    18         scanf("%d%d",&r,&c);
    19         memset(m,0,sizeof(m));
    20         for(int i=1;i<=r;i++)
    21             for(int j=1;j<=c;j++)
    22             scanf("%d",&m[i][j]);
    23         for(int i=1;i<=r;i++)
    24             for(int j=1;j<=c;j++)
    25              m[i][j]+=dp(i,j);
    26         printf("Scenario #%d:
    ",z);
    27         printf("%d
    
    ",m[r][c]);
    28     }
    29     return 0;
    30 }
    31  
    32 #include <iostream>              //深搜,在杭电上面提交时间超限。
    33 #include <cstdio>
    34 #include <cstring>
    35 using namespace std;
    36 int a[3][2]={{1,0},{0,1},{1,1}};
    37 int m[1100][1100];
    38 int sum=0,r,c;
    39 void dfs(int x,int y,int s)
    40 {
    41     if(x==r-1&&y==c-1)
    42     {
    43        if(s>sum)
    44             sum=s;
    45        return;
    46     }
    47     int xx,yy;
    48     for(int i=0;i<3;i++)
    49     {
    50         xx=x+a[i][0];
    51         yy=y+a[i][1];
    52         if(xx>=0&&xx<=r-1&&yy>=0&&yy<=c-1)
    53         dfs(xx,yy,s+m[xx][yy]);
    54     }
    55     return;
    56 }
    57 int main()
    58 {
    59     int n;
    60     scanf("%d",&n);
    61     while(n--)
    62     {
    63         scanf("%d%d",&r,&c);
    64         memset(m,0,sizeof(m));
    65         for(int i=0;i<r;i++)
    66             for(int j=0;j<c;j++)
    67             scanf("%d",&m[i][j]);
    68             dfs(0,0,m[0][0]);
    69         printf("%d
    ",sum);
    70     }
    71     return 0;
    72 }

     

  • 相关阅读:
    Django框架----路由系统(详细)
    Django框架----路由系统、视图和模板(简单介绍)
    Django框架----模板继承和静态文件配置
    Django框架----模板语法
    毕昇杯之无线通信模块
    新版本ubuntu13.10软件安装
    毕昇杯总结1
    调试程序的方法总结
    新年,新气象
    基于51,人体红外感应和RC522的门禁系统
  • 原文地址:https://www.cnblogs.com/zou-zou/p/5320507.html
Copyright © 2011-2022 走看看