机器人运动学求解有几类基本问题,选择机器人结构时要考虑其运动结构特点及任务需求

  机器人运动学求解有几类基本问题,选择机器人结构时要考虑其运动结构特点及任务需求

  地面上有一个行和列的网格,横坐标和纵坐标分别是和。

  一个机器人从坐标网格开始移动,一次只能向左、右、上、下移动一个网格。

  但是不能输入行坐标和列坐标的数字之和大于的网格。

  机器人能到达多少个方格?

  1个示例

  输入:k=7,m=4,n=5

  输出:20个样本2

  输入:k=18,m=40,n=40

  输出:1484

  说明:当k为18时,机器人可以进入正方形(35,37),因为3 5 3 7=18。

  但是,它不能进入正方形(35,38),因为3 5 3 8=19。注意:

  0=m=50 0=n=50 0=k=100思路(BFS),

  这是一个典型的宽度优先搜索问题。我们可以从(0,0)点开始,一次向上、下、左、右四个方向扩展新的节点。

  扩展时,您应该注意新节点的以下条件:

  之前没有遍历过,这个可以用一个bool数组来判断;

  不出国境;

  水平数字的总和小于;

  最后,答案是遍历的所有合法节点的数量。

  时间复杂度

  每个节点最多只会加入一次团队,所以时间复杂度不会超过网格中的节点数。

  最坏的情况是遍历网格中的所有点,所以时间复杂度为。

  如果把整个棋盘看成一个状态,就需要回去;如果把棋盘上的每一个点都当成一种状态,就不需要回去了。

  代码类解决方案{

  公共:

  int get_sum(pair int,int t)

  {

  int sum=0;

  while(t.first)

  {

  总和=t.first;

  t.first/=10;

  }

  while(秒)

  {

  总和=t.second;

  t.second/=10;

  }

  返回总和;

  }

  int movingCount(int threshold,int rows,int cols)

  {

  if(rows==0cols==0)返回0;

  队列对int,int q;

  vector vector bool st(rows,vector bool (cols,false));//初始化st数组

  int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1 };

  q.push({0,0 });

  int CNT=0;

  while(q.size())

  {

  auto t=q . front();

  q . pop();

  if(ST[t . first][t . second] get _ sum(t)threshold)继续;

  cnt

  ST[t . first][t . second]=true;

  for(int I=0;I 4;我)

  {

  int a=t.first dx[i],b=t . second dy[I];

  if(a=0 a行b=0 b列)

  q.push({a,b });

  }

  }

  返回cnt

  }

  };获取一般问题解决方案

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: