zoukankan      html  css  js  c++  java
  • 1083 矩阵取数问题

    基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题

    一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。
     
    例如:3 * 3的方格。
     
    1 3 3
    2 1 3
    2 2 1
     
    能够获得的最大价值为:11。
    Input
    第1行:N,N为矩阵的大小。(2 <= N <= 500)
    第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 <= N[i] <= 10000)
    Output
    输出能够获得的最大价值。
    Input示例
    3
    1 3 3
    2 1 3
    2 2 1
    Output示例
    11

    典型的dp问题,dp方程为:

    dp[i][j]=max(dp[i-1][j],dp[i][j-1])+map[i][j];

    附AC代码:

     1 #include<iostream>
     2 #include<cmath>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 int map[510][510];
     7 int dp[510][510];
     8 
     9 int main(){
    10     int n;
    11     cin>>n;
    12     memset(map,0,sizeof(map));
    13     memset(dp,0,sizeof(dp));
    14     for(int i=1;i<=n;i++){
    15         for(int j=1;j<=n;j++){
    16             cin>>map[i][j];
    17         }
    18     }
    19     for(int i=1;i<=n;i++){
    20         for(int j=1;j<=n;j++){
    21             dp[i][j]=max(dp[i-1][j],dp[i][j-1])+map[i][j];
    22         }
    23     }
    24     cout<<dp[n][n]<<endl;
    25     return 0;
    26 } 
  • 相关阅读:
    web.config中httpRedirect
    时间复杂度O(n)与空间复杂度O(1)
    NserviceBus过期处理
    struts的生命周期
    myeclipse 更改字体
    研磨struts2地址
    jQuery 实现公告无缝滚动
    统计网站访问图形数据链接
    工作经常使用的SQL整理
    使IE6下PNG背景透明的七种方法
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5780650.html
Copyright © 2011-2022 走看看