首页 > 其他分享 >(每日一题)字⺟收集——<动态规划-路径问题>

(每日一题)字⺟收集——<动态规划-路径问题>

时间:2024-12-22 14:56:55浏览次数:6  
标签:收集 temp int 路径 else 算法 vector 动态 dp

1. 题⽬链接:DP39字⺟收集

2. 题⽬描述:

3. 解法:

算法思路:

基础的路径问题的dp模型。 

 C++算法代码:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    //初始化
    int m,n;
    cin >> m >> n;
    vector<vector<char>>temp(m, vector<char>(n));   //字母矩阵
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> temp[i][j];
        }
    }
    //动态规划
    vector<vector<int>>dp(m+1, vector<int>(n+1));
    for(int i=m-1;i>=0;i--)
    {
        for(int j=n-1;j>=0;j--)
        {
            int t = 0;
            if(temp[i][j] == 'l') t = 4;
            else if(temp[i][j] == 'o') t = 3;
            else if(temp[i][j] == 'v') t = 2;
            else if(temp[i][j] == 'e') t = 1;
            dp[i][j]=max(dp[i+1][j],dp[i][j+1])+t;
        }
    }
    cout<<dp[0][0];
    return 0;
}

Java算法代码:

import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息 
public class Main
{
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		int n = in.nextInt(), m = in.nextInt();
		char[][] arr = new char[n + 1][m + 1];
		for (int i = 1; i <= n; i++)
		{
			char[] s = in.next().toCharArray();
			for (int j = 1; j <= m; j++)
			{
				arr[i][j] = s[j - 1];
			}
		}
		int[][] dp = new int[n + 1][m + 1];
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				int t = 0;
				if (arr[i][j] == 'l') t = 4;
				else if (arr[i][j] == 'o') t = 3;
				else if (arr[i][j] == 'v') t = 2;
				else if (arr[i][j] == 'e') t = 1;
				dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]) + t;
			}
		}
		System.out.println(dp[n][m]);
	}
}

标签:收集,temp,int,路径,else,算法,vector,动态,dp
From: https://blog.csdn.net/2301_79580018/article/details/144632337

相关文章

  • Linux 动态链接原理
    1.动态链接的基本概念   在Linux系统中,动态链接是一种共享库的使用方式。它允许多个可执行文件共享同一段库代码,而不是每个可执行文件都包含一份完整的库副本。这样可以大大节省内存空间,并且方便库的更新维护。例如,多个程序都需要使用标准C库中的`printf`函数,如果是静态......
  • 【数据结构与算法】深度优先搜索:树与图的路径探寻之道
    一、引言在计算机科学领域,树与图的路径搜索是一个基础且重要的问题,而深度优先搜索算法(DepthFirstSearch,简称DFS)则是解决此类问题的经典算法之一。深度优先搜索算法通过从起始节点开始,沿着一条路径尽可能深地探索,直到无法继续或达到目标节点,然后回溯到前一步,继续探索其......
  • 基于Java的动态交通信息服务系统设计与实现
    计算机毕业设计案例Java毕业设计案例ASP.NET毕业设计案例PHP毕业设计案例微信小程序毕业设计案例基于Java的村镇社区数据管理系统基于ASPNETMVC的网站式音乐播放基于php的微信小程序在线考试系统基于Java的“free美妆榜”微信小程序【12/19/02】基于Java后台的口罩查询......
  • 使用CSS3实现动态信封折叠效果
    实现一个动态信封折叠效果需要用到一些CSS3动画和转换(transforms)。以下是一个简单的例子,展示了如何使用CSS3来创建一个信封折叠和展开的动画效果。首先,我们需要创建一个信封的基本结构。HTML结构可能如下所示:<divclass="envelope"><divclass="envelope-front"></div......
  • 使用js写一个数字动态累加的方法
    你可以通过JavaScript的setInterval函数来创建一个数字动态累加的效果。以下是一个简单的示例:functionstartCounting(start=0,increment=1,duration=1000){letcount=start;constcounterElement=document.getElementById('counter');//假设你有一个HT......
  • 第21天:信息收集-CDN绕过&Web应用&加速部署&漏洞回链&全网扫描&反向邮件&解析记录
    #知识点1、信息收集-Web应用-CDN加速-如何识别2、信息收集-Web应用-CDN加速-绕过方法一、前置知识:1.传统访问:用户访问域名–>解析服务器IP–>访问目标主机2.普通CDN:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机3.带WAF的CDN:用户访问域名–>CDN节点(WAF)–>......
  • 路径规划之启发式算法之二十一:狼群算法(Wolf Pack Algorithm,WPA)
            狼群算法(WolfPackAlgorithm,WPA)是一种模拟狼群捕食行为及其猎物分配方式的群体智能优化算法。它由吴虎胜等人在2013年提出,算法采用了基于人工狼主体的自下而上的设计方法和基于职责分工的协作式搜索路径结构。它通过抽象狼群搜索、围攻以及更新换代的三种行为......
  • 动态规划算法-----子数组系列
    1.引言动态规划(DynamicProgramming,DP)是一个强大的算法设计方法,广泛应用于解决最优化问题。它的核心思想是通过将大问题分解为小问题,并利用子问题的解来构建大问题的解。动态规划的核心特点是“重叠子问题”和“最优子结构”。在这篇博客中,我们将探讨动态规划算法在解决“......
  • 动态规划算法-子数组系列之_等差数列划分
    413.等差数列划分( Leetcode)等差数列划分题目描述如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子......
  • 如何在PbootCMS后台动态调整文章列表每页显示的数量?
    在PbootCMS中,动态调整后台文章列表每页显示的数量可以提升管理的灵活性和用户体验。以下是详细的步骤和实现方法:创建动态调整功能:在后台管理界面中增加一个动态调整每页显示数量的功能,允许管理员根据需要随时调整。修改模板文件:打开文件 \apps\admin\view\default\con......