[算法题]字母收集

题目链接: DP39 字母收集

用动态规划求解, 先定义状态表示:

dp[i][j]: 表示在坐标 (i,j) 处可获得的最大得分

根据题意, 只能向下和向右走, 那么可以得出走到坐标 (i, j) 位置无非从左边来或者从上边来, 根据状态表示, 也就是取左边和上边来的最大值加上 (i, j) 位置本身的值即为 dp[i][j], 那么状态转移方程为:

dp[i][j] = max(dp[i][j-1], dp[i-1][j]) + 坐标(i, j)的字母的得分

图示:

定义数组时多开一行和一列, 这样方便, 不用处理边界问题, 不用特别初始化, 默认的 0 即可.

题解代码:
 

#include <iostream>
#include <vector>
using namespace std;

int main() 
{
    int n, m;
    cin >> n >> m;
    vector<vector<char>> arr(n + 1, vector<char>(m + 1));
    vector<vector<int>> dp(n + 1, vector<int>(m + 1));
    for(int i = 1; i <= n; ++i)
    {
        for(int j = 1; j <= m; ++j)
        {
            cin >> arr[i][j];
            int score = 0;
            switch(arr[i][j])
            {
            case 'l':
                score = 4;
                break;
            case 'o':
                score = 3;
                break;
            case 'v':
                score = 2;
                break;
            case 'e':
                score = 1;
                break;
            }
            dp[i][j] = max(dp[i][j - 1], dp[i - 1][j]) + score;
        }
    }
    cout << dp[n][m] << endl;
    return 0;
}

相关推荐

  1. 【代码+详解】算法 : 骨头收集

    2024-07-19 09:22:01       22 阅读
  2. 算法面试_字节

    2024-07-19 09:22:01       27 阅读
  3. 算法】49. 字母异位词分组

    2024-07-19 09:22:01       52 阅读
  4. 【LeetCode热100】【贪心算法】划分字母区间

    2024-07-19 09:22:01       29 阅读
  5. OSPF面试收集

    2024-07-19 09:22:01       110 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 09:22:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 09:22:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 09:22:01       58 阅读
  4. Python语言-面向对象

    2024-07-19 09:22:01       69 阅读

热门阅读

  1. 单例设计模式

    2024-07-19 09:22:01       21 阅读
  2. 系统架构师(每日一练4)

    2024-07-19 09:22:01       23 阅读
  3. PTA - 首字母大写(python编程300例)

    2024-07-19 09:22:01       23 阅读
  4. Pandas库学习之DataFrame.drop()函数

    2024-07-19 09:22:01       22 阅读
  5. Kotlin 协程简化回调

    2024-07-19 09:22:01       22 阅读
  6. YOLOv8_ ByteTrack目标跟踪、模型部署

    2024-07-19 09:22:01       23 阅读
  7. Git 和 Subversion (SVN)的全方面对比

    2024-07-19 09:22:01       21 阅读
  8. 使用 com.alibaba:easyexcel 导出excel文件时遇到的问题

    2024-07-19 09:22:01       23 阅读