zoukankan      html  css  js  c++  java
  • poj 2948 Martian Mining

    http://poj.org/problem?id=2948

    题目大意:一个n*m的矩阵,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少。最北边有bloggium的收集站,最西边有 yeyenum 的收集站。现在要在这些格子上面安装向北或者向西的传送带(每个格子自能装一种)。问最多能采到多少矿。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define maxn 600
     5 using namespace std;
     6 
     7 int n,m;
     8 int dp[maxn][maxn];
     9 int a[maxn][maxn];
    10 int b[maxn][maxn];
    11 
    12 int main()
    13 {
    14     while(scanf("%d%d",&n,&m)!=EOF)
    15     {
    16         if(n==0&&m==0) break;
    17         memset(a,0,sizeof(a));
    18         memset(b,0,sizeof(b));
    19         memset(dp,0,sizeof(dp));
    20         for(int i=1; i<=n; i++)
    21         {
    22             for(int j=1; j<=m; j++)
    23             {
    24                 scanf("%d",&a[i][j]);
    25             }
    26         }
    27         for(int i=1; i<=n; i++)
    28         {
    29             for(int j=1; j<=m; j++)
    30             {
    31                 scanf("%d",&b[i][j]);
    32             }
    33         }
    34         for(int i=1; i<=n; i++)
    35         {
    36             for(int j=1; j<=m; j++)
    37             {
    38                 a[i][j]+=a[i][j-1];
    39                 b[i][j]+=b[i-1][j];
    40             }
    41         }
    42         for(int i=1; i<=n; i++)
    43         {
    44             for(int j=1; j<=m; j++)
    45             {
    46                 dp[i][j]=max(dp[i-1][j]+a[i][j],dp[i][j-1]+b[i][j]);
    47             }
    48         }
    49         printf("%d
    ",dp[n][m]);
    50     }
    51     return 0;
    52 }
    View Code
  • 相关阅读:
    2019年6月英语四六级试题及答案和视频教程
    经典解压缩软件 WinRAR 5.90 sc 官方去广告版
    会动的边框
    萌萌达机器人
    背景图片跟随鼠标动
    烟花代码
    常用正则表达式
    计算器
    顶部下啦菜单
    ps用画笔工具设计水墨圆环
  • 原文地址:https://www.cnblogs.com/fanminghui/p/3801328.html
Copyright © 2011-2022 走看看