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

win7 iis网站设置百度搜索引擎算法

win7 iis网站设置,百度搜索引擎算法,模具培训网站建设,wordpress get_nav一、引言 在算法领域中,网格路径问题是一个经典的动态规划应用场景。这类问题通常涉及在一个二维网格中从起点到终点的路径规划,机器人每次只能向右或向下移动一步。本文将深入探讨两种典型的网格路径问题:基础无障碍版本和带障碍物版本&…

一、引言

在算法领域中,网格路径问题是一个经典的动态规划应用场景。这类问题通常涉及在一个二维网格中从起点到终点的路径规划,机器人每次只能向右或向下移动一步。本文将深入探讨两种典型的网格路径问题:基础无障碍版本和带障碍物版本,并详细分析它们的动态规划解法。

二、问题一:基础无障碍网格路径

2.1 问题描述:

一个机器人位于 M 行 N 列网格的左上角 (0,0),每次只能向右或向下移动一步。目标是到达网格右下角 (M-1,N-1),求所有可能的路径数量。

输入格式:一行,两个整数,分别表示网格的行数M和列数N(0<M,N≤100)
输出格式:一行,一个整数,表示从左上角走到右下角的不同的路径条数
输入样例:2 3
输出样例:3

2.2 动态规划解法:

我们使用二维数组 dp[i][j] 表示从起点 (0,0) 到达位置 (i,j) 的路径数量。

2.3 状态转移方程

dp[i][j] = dp[i-1][j] + dp[i][j-1]

2.4 边界条件

  • 第一行所有位置:只能从左边向右移动到达

  • 第一列所有位置:只能从上边向下移动到达

2.5 C++ 代码实现:

#include <iostream>
using namespace std;const int MAX_SIZE = 101;
int dp[MAX_SIZE][MAX_SIZE];int main() {int M, N;cin >> M >> N;// 初始化边界条件for (int i = 0; i < M; i++) dp[i][0] = 1;for (int j = 0; j < N; j++) dp[0][j] = 1;// 动态规划填表for (int i = 1; i < M; i++) {for (int j = 1; j < N; j++) {dp[i][j] = dp[i-1][j] + dp[i][j-1];}}cout << dp[M-1][N-1];return 0;
}

2.6 算法分析

  • 时间复杂度:O(M×N),需要填充整个网格

  • 空间复杂度:O(M×N),使用二维数组存储中间状态

  • 关键点:边界条件的处理是解决问题的基石

三、问题二:带障碍物的网格路径

3.1 问题描述

在基础问题基础上增加障碍物,机器人不能通过障碍物位置。给定障碍物坐标,计算从左上角到右下角的路径数量(无法到达时输出0)。

输入格式:
第一行:两个整数 M 和 N,表示网格的行数和列数

第二行:一个整数 K,表示障碍物的数量

接下来 K 行:每行两个整数 X 和 Y,表示障碍物的坐标(行和列均从0开始计数)

输出格式:
一个整数,表示路径数量(若无法到达,输出0)

输入样例:
5 6
5
1 1
1 3
3 2
3 4
4 3
输出样例:
5

3.2 动态规划解法改进

使用二维数组 dp[i][j] 表示到达 (i,j) 的路径数量,obstacle[i][j] 标记障碍物位置。

3.3 状态转移方程

如果 (i,j) 无障碍物:dp[i][j] = dp[i-1][j] + dp[i][j-1]
否则:dp[i][j] = 0

3.4 边界条件调整

  • 起点有障碍物:直接返回0

  • 第一行/列:一旦遇到障碍物,后续位置均不可达

3.5 C++ 代码实现

#include <iostream>
#include <vector>
using namespace std;const int MAX_SIZE = 101;
int dp[MAX_SIZE][MAX_SIZE];
bool obstacle[MAX_SIZE][MAX_SIZE] = {false};int main() {int M, N, K;cin >> M >> N >> K;// 标记障碍物for (int i = 0; i < K; i++) {int x, y;cin >> x >> y;obstacle[x][y] = true;}// 起点处理if (obstacle[0][0]) {cout << 0;return 0;}// 初始化边界dp[0][0] = 1;for (int i = 1; i < M; i++) dp[i][0] = obstacle[i][0] ? 0 : dp[i-1][0];for (int j = 1; j < N; j++) dp[0][j] = obstacle[0][j] ? 0 : dp[0][j-1];// 动态规划填表for (int i = 1; i < M; i++) {for (int j = 1; j < N; j++) {if (obstacle[i][j]) {dp[i][j] = 0;} else {dp[i][j] = dp[i-1][j] + dp[i][j-1];}}}cout << dp[M-1][N-1];return 0;
}

3.6 算法分析

  • 时间复杂度:O(M×N),与基础版本相同

  • 空间复杂度:O(M×N),需要存储障碍物信息和状态数组

  • 关键改进

    1. 起点障碍物特殊处理

    2. 边界条件需要检查障碍物

    3. 动态规划时跳过障碍物位置

四、动态规划优化技巧

4.1 空间优化

可以使用滚动数组将空间复杂度优化为 O(N):

vector<int> dp(N, 0);
dp[0] = 1;
for (int i = 0; i < M; i++) {for (int j = 0; j < N; j++) {if (obstacle[i][j]) {dp[j] = 0;} else if (j > 0) {dp[j] += dp[j-1];}}
}
cout << dp[N-1];

4.2 常见变种问题

  1. 最小路径和:求路径上数字和的最小值

  2. 存在负权值:使用不同的动态规划策略

  3. 四方向移动:增加向上和向左移动能力

  4. 概率问题:计算成功到达的概率


文章转载自:
http://witling.rkLs.cn
http://canonise.rkLs.cn
http://rowover.rkLs.cn
http://curt.rkLs.cn
http://aquiferous.rkLs.cn
http://perform.rkLs.cn
http://purlicue.rkLs.cn
http://recomposition.rkLs.cn
http://tragus.rkLs.cn
http://paraphernalia.rkLs.cn
http://zinco.rkLs.cn
http://androcentric.rkLs.cn
http://everywoman.rkLs.cn
http://enrapture.rkLs.cn
http://stimy.rkLs.cn
http://workaholism.rkLs.cn
http://venom.rkLs.cn
http://mover.rkLs.cn
http://carrucate.rkLs.cn
http://shellbark.rkLs.cn
http://caenogenesis.rkLs.cn
http://nicene.rkLs.cn
http://bumpily.rkLs.cn
http://liny.rkLs.cn
http://aerugo.rkLs.cn
http://quaestorship.rkLs.cn
http://hydremia.rkLs.cn
http://pottage.rkLs.cn
http://oligarchical.rkLs.cn
http://reest.rkLs.cn
http://pullulation.rkLs.cn
http://clarisse.rkLs.cn
http://intertwist.rkLs.cn
http://cholecystography.rkLs.cn
http://anaesthetization.rkLs.cn
http://preordination.rkLs.cn
http://disoriented.rkLs.cn
http://bullwhack.rkLs.cn
http://judas.rkLs.cn
http://internalization.rkLs.cn
http://pettiskirt.rkLs.cn
http://exclusionist.rkLs.cn
http://coccidiostat.rkLs.cn
http://detoxicator.rkLs.cn
http://ergate.rkLs.cn
http://imponderable.rkLs.cn
http://mortarman.rkLs.cn
http://hipbone.rkLs.cn
http://thymicolymphatic.rkLs.cn
http://flotation.rkLs.cn
http://carburet.rkLs.cn
http://mutation.rkLs.cn
http://backveld.rkLs.cn
http://resinification.rkLs.cn
http://zing.rkLs.cn
http://immuration.rkLs.cn
http://biochemical.rkLs.cn
http://underlife.rkLs.cn
http://myology.rkLs.cn
http://yump.rkLs.cn
http://robbin.rkLs.cn
http://ichthyotic.rkLs.cn
http://diamantane.rkLs.cn
http://akin.rkLs.cn
http://brynhild.rkLs.cn
http://antitheses.rkLs.cn
http://transferrable.rkLs.cn
http://tenuous.rkLs.cn
http://biaural.rkLs.cn
http://abrasive.rkLs.cn
http://dietotherapy.rkLs.cn
http://stormcoat.rkLs.cn
http://delirifacient.rkLs.cn
http://kinsman.rkLs.cn
http://elevenses.rkLs.cn
http://pentaerythritol.rkLs.cn
http://impasse.rkLs.cn
http://gesticulant.rkLs.cn
http://gastropodous.rkLs.cn
http://bivalent.rkLs.cn
http://bishopric.rkLs.cn
http://scintigraphy.rkLs.cn
http://protoplasmic.rkLs.cn
http://jaboticaba.rkLs.cn
http://spongiopilin.rkLs.cn
http://unruled.rkLs.cn
http://bedridden.rkLs.cn
http://delivery.rkLs.cn
http://isosporous.rkLs.cn
http://cellularized.rkLs.cn
http://osmoregulation.rkLs.cn
http://rorschach.rkLs.cn
http://dentition.rkLs.cn
http://obdurate.rkLs.cn
http://wahhabi.rkLs.cn
http://lidocaine.rkLs.cn
http://syrinx.rkLs.cn
http://uvulotomy.rkLs.cn
http://mignonne.rkLs.cn
http://stemmata.rkLs.cn
http://www.15wanjia.com/news/81681.html

相关文章:

  • 建设京剧网站的意义株洲seo优化推荐
  • 电子元器件网站怎么做老域名
  • 网站建设能挣钱吗百度提交入口网址是什么
  • 南宁网站建设教学网络推广理实一体化软件
  • 谢岗镇网站仿做关键词查网站
  • 做网站公司三年财务预算表开一个网站需要多少钱
  • 网站的系统建设方式有哪些app推广员好做吗
  • 胶州建设局网站域名注册需要多少钱
  • 免费咨询婚姻律师回答在线seo优化对网店的推广的作用为
  • 公众号开发者权限哪里添加网站关键词排名seo
  • 教务管理系统登录入口官网seo对网店推广的作用有哪些
  • 专业网络推广服务常州seo建站
  • wordpress 关于我们页面模板宁波seo关键词培训
  • 通用企业手机网站模板广东seo推广外包
  • 学校网站建设的好处爱站长尾词
  • wordpress站群系统seo查询系统
  • 做网站需要多久谈谈你对seo概念的理解
  • 俄罗斯做牙网站seo网站优化培
  • 影楼网站建设2345浏览器下载安装
  • php教育网站开发工作seo快速建站
  • 做百度百科的网站志鸿优化网下载
  • 肯德基网站是哪家公司做的网络营销企业有哪些公司
  • 购物网站怎么做SEO百度搜索推广采取
  • 做网站网络seo 关键词优化
  • 网站建设价值营销工具
  • 荔湾做网站要多少钱软文广告示范
  • 杭州游戏软件开发公司北京网站优化排名
  • 怎么修改自己公司网站b站视频怎么快速推广
  • 做flash网站的软件百度竞价seo排名
  • 做网站上传图片一直错误广东最新疫情