当前位置: 首页 > wzjs >正文

如何创建网站制作平台仿爱范儿网wordpress主题

如何创建网站制作平台,仿爱范儿网wordpress主题,郑州it渠道网,企业网站策划案怎么写给定一个m行n列的矩阵,从左上角开始每次只能向右或者向下移动,最后到达右下角的位置,路径上的所有数字累加起来作为这条路径的路径和。求所有路径和中最小路径和。 输入格式: 首先输入行数m及列数n,接下来输入m行,每…

给定一个m行n列的矩阵,从左上角开始每次只能向右或者向下移动,最后到达右下角的位置,路径上的所有数字累加起来作为这条路径的路径和。求所有路径和中最小路径和。

输入格式:

首先输入行数m及列数n,接下来输入m行,每行n个数。

输出格式:

输出第一行为最小路径(假定测试数据中的最小路径唯一),第2行为最小路径和。

输入样例1:

4 4
1 3 5 9
8 1 3 4
5 0 6 1
8 8 4 0

输出样例1:

1 3 1 0 6 1 0 
12

问题分析

这是一个典型的路径规划问题,可以使用动态规划来解决。我们需要找到从矩阵左上角到右下角的最小路径和,并记录下这条路径。

在每个点上,我们只能向右或向下移动,因此到达位置 (i, j) 的路径只能来自于位置 (i-1, j)(上方)或位置 (i, j-1)(左方)。我们选择这两个来源中路径和较小的那个,然后加上当前位置的值,即可得到到达 (i, j) 的最小路径和。

解题思路

动态规划解法

我们定义:

  • dp[i][j] 表示从起点 (0, 0) 到达位置 (i, j) 的最小路径和
  • pace[i][j] 用于记录到达位置 (i, j) 的前一步是从哪个方向来的(0表示从上方,1表示从左方)

状态转移方程为:

dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + num[i][j]

边界条件:

  • dp[0][0] = num[0][0]
  • 对于第一行:dp[0][j] = dp[0][j-1] + num[0][j](只能从左侧来)
  • 对于第一列:dp[i][0] = dp[i-1][0] + num[i][0](只能从上方来)

计算完 dp 数组后,dp[m-1][n-1] 就是我们要求的最小路径和。

为了重建最小路径,我们使用 pace 数组记录每一步的选择,然后用栈存储从终点回溯到起点的路径,最后输出即可得到完整路径。

代码实现

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(bf.readLine());int m = Integer.parseInt(st.nextToken());int n = Integer.parseInt(st.nextToken());int[][] num = new int[m][n];for(int i=0;i<m;i++){st = new StringTokenizer(bf.readLine());for(int j=0;j<n;j++){num[i][j] = Integer.parseInt(st.nextToken());}}int[][] dp = new int[m][n];int[][] pace = new int[m][n];dp[0][0] = num[0][0];//初始化第一行和第一列for(int i=1;i<m;i++){dp[i][0] = num[i][0] + dp[i-1][0];pace[i][0] = 0;}for(int i=1;i<n;i++){dp[0][i] = num[0][i] + dp[0][i-1];pace[0][i] = 1;}//状态转移方程//dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + num[i][j];for(int i=1;i<m;i++){for(int j=1;j<n;j++){if(dp[i-1][j]<dp[i][j-1]){dp[i][j] = dp[i-1][j] + num[i][j];pace[i][j] = 0;}else{dp[i][j] = dp[i][j-1] + num[i][j];pace[i][j] = 1;}}}//逆推路径Stack<Integer> temp = new Stack<>();int i=m-1,j=n-1;while (i>0||j>0){temp.push(num[i][j]);if(pace[i][j]==0) i--;else j--;}temp.push(num[0][0]);while (!temp.isEmpty()){System.out.print(temp.pop()+" ");}System.out.println();System.out.println(dp[m-1][n-1]);}
}

这种方法的时间复杂度为 O(m×n),空间复杂度也为 O(m×n),其中 m 和 n 分别是矩阵的行数和列数。 

http://www.dtcms.com/wzjs/841311.html

相关文章:

  • 同一人可以做几个网站的负责人秦皇岛建设局长
  • 山东装饰公司网站建设公司济南网站建设选聚搜网络
  • 爬取旅游网站数据并进行分析网站seo怎样做
  • 这是我自己做的网站吗北京网站推广排名服务
  • 如果建设淘宝导购网站国建设银行e路通网站申
  • 单页销售网站如何赚钱宁波做seo推广企业
  • 中国建设工程监理协会官方网站基于dw的动物网站设计论文
  • 网络舆情监测方案搜索引擎优化大致包含哪些内容或环节
  • 电子商务公司的名字对seo的理解
  • 一级a做爰片免费网站中国片湖北省住房建设厅网站
  • 网站的内容做证据观点wordpress底部自豪
  • 网站开发方向行业现状做服装的一般去什么网站找图片
  • 网站建设基本流程备案成都旅游攻略四天三夜
  • 网站设计第一步怎么做医药网站怎么做
  • 做直播小视频在线观看网站北京宏福建设工程有限公司网站
  • 网站子目录网站开发php 图片上传失败
  • 做代炼的网站手机代码网站有哪些问题
  • 珠海网站建设解决方案南京溧水网站建设
  • 企业网站建设合同书模板纯文本网页制作步骤
  • 摄影个人网站模板自己做了一个网站
  • 网站运营案例做旅游网站平台合作入驻
  • 宣武青岛网站建设专业设计网站排行榜
  • 做网站项目需要多少钱深圳做网站费用
  • 移动网站建设规定如何建设视频资源电影网站
  • ftp网站 免费专门做网站的公司
  • 泉州自助建站郑州网站建
  • 域名备案网站备案查询天津seo培训哪家好
  • 网站建设吉金手指专业15云数据库安装wordpress
  • 电商网站在线支付怎么做网站开发合同履约
  • 网站正能量点进去就能看南通网站建设搭建