机器人网店

题目描述:

ID为TMao的淘宝用户前些日子在淘宝机器人网店购买了一个智能机器人oz.这个机器人不仅精致小巧,还具有很多有意思的功能。比如:oz可以在迷宫里自由的上下左右走动; 并且,在不碰到障碍物的情况下,它能够以最短时间从入口处走到出口 (假设存在的话); 最智能的是,在有充电器的地方oz还可以给自己充电 (^_^)。

现在,TMao设计了很多种迷宫,并且在里面随意的摆了些充电器,想请你们帮他算下,这个智能机器人要多久时间可以走出去呢?

他做了如下假设:

1.迷宫可以看作是长为w,宽为h的网格;
2.机器人每移动一步,需要时间1s,消耗电量0.5格;
3.机器人初始电量为满格4格;
4.每个充电器充电次数不限 (充电时间所需时间忽略不计),机器人可以反复经过一个地方,但是不能走到有障碍的地方,并且一旦机器人电量变为0,它就只能停下来,哪怕这个位置正好有充电器,它也没有足够的电量去执行充电操作;
5.机器人走到迷宫出口,必须至少还有0.5格电量,否则也算没走出出口。

输入:

输入有多组测试案例,每个测试案例以如下形式输入。第一行输入w,h分别表示迷宫的长和宽,当输入0 0时结束输入(w , h <= 10)。

接下来的h行表示迷宫的布局:-1表示该位置是障碍物, 0表示该位置什么也没有,1表示迷宫入口, 2表示迷宫出口, 3表示该位置有充电器。

输出:
对应每个测试案例,输出机器人oz走到出口处的时间;如果无法按要求走到出口则输出”Pity oz!”。  
样例输入:
4 3
2 0 0 0
0 0 0 0
0 0 0 1
4 3
2 -1 0 0
-1 0 0 0
3 0 0 1
0 0

样例输出:

5

Pity oz!

参考代码:

 1 #include<queue>
 2 #include<algorithm>
 3 #include<stdio.h>
 4 #include<string.h>
 5 using namespace std;
 6 int w, h, m, n;//w矩阵行,h为矩阵列
 7 int a[11][11];//用来分配最大内存矩阵空间
 8 int v[11][11][9];//用来标记机器人所处位置对于的电量
 9 int s[4][2] ={{ 1, 0 },{ -1, 0 },{ 0, 1 },{ 0, -1 } };//机器人移动方向“上下左右”
10 struct robot//x,y为横纵坐标,l为长度,e为电量
11 {
12   int x, y, l, e;
13  };
14 //判断当前点是否是障碍
15 bool judge(int x, int y)
16 {
17   if (x >= 1 && x <= h && y >= 1 && y <= w && a[x][y] != -1)
18   return true;
19   return false;
20 }
21 void bfs()//深度遍历
22 {
23 robot k, t;
24 int i, x, y;
25 //初始时机器人的状态
26 k.x = m;
27 k.y = n;
28 k.l = 0;
29 k.e = 8;
30 queue<robot> Q;
31 Q.push(k);//入队
32 memset(v, 0, sizeof(v));
33 v[m][n][8] = 1;
34 while (!Q.empty())
35   {
36      k = Q.front();//取队头部数据
37       Q.pop();//出队
38       for (i = 0; i < 4; i++)//沿四个方向遍历
39      {
40          x = k.x + s[i][0];
41          y = k.y + s[i][1];
42         if (judge(x, y) && k.e > 1)//当前结点合法,且机器电量充足
43         {
44          t.x = x;
45          t.y = y;
46          t.e = 8;
47          t.l = k.l + 1;//遍历路径加1
48          if (a[x][y] == 2)//找到出口,结束遍历
49          {printf("%d\n", k.l + 1);return; }
50         else if (a[x][y] == 3 && !v[x][y][8])//找到充电器处,如果电量不满,进行充电
51           {v[x][y][8] = 1; Q.push(t);}
52          else if (a[x][y] == 0 && !v[x][y][k.e - 1])//如果是未经过路径,电量减1,同时标记该结点。
53           { v[x][y][k.e - 1] = 1; t.e = k.e - 1; Q.push(t);}
54         }
55        }
56      }
57   printf("Pity oz!\n");//未找到出口
58 }
59
60 void main()
61 {
62  int i, j;
63   while (scanf("%d%d", &w, &h)==2)
64    {
65     if (!w && !h)  return;
66       for (i = 1; i <= h; i++)
67         for (j = 1; j <= w; j++)
68             {
69                scanf("%d", &a[i][j]);
70                 if (a[i][j] == 1)
71                   { m = i; n = j; }
72              }
73        bfs();
74     }
75 }
时间: 2024-10-11 13:05:33

机器人网店的相关文章

人工智能在4S店、网店,应用经验分享

在信息社会,机器逐渐***到我们生活的各个角落,彻底改变了我们的生活方式.工作方式和娱乐方式.从最小的语音助手,如siri,到行为算法.搜索算法,再到自动驾驶车辆和飞机.尽管上述成就足以让我们大吃一惊,但这种人工智能技术仍处于起步阶段.但许多人称之为或理解为人工智能的东西并不一定是这样,因为它们中的许多都是基于预先定义的多输入或用户行为的响应算法. 2018年人工智能大会上,马云预言:未来10到15年,传统制造业面临的痛苦将会远远超过今天的想象,企业如果不能从规模化.标准化向个性化和智慧化转型,

ECshop网店系统百万级商品量性能优化-简单的一些Cache内存配置

ECshop网店系统对于产品的数据.模板.Query都可以缓存,也就是把一些商品详情页.分类页.Search页的数据经过一次访问后,用文件的形式保存下来,下次有人访问相同的页面时,不用再查数据库,直接读取Cache展示出来,减少服务器数据库压力. 这样的做法的确可以加速访问,减少资源浪费,对于流量比较大,或者页面重复访问Hit Rate比较高的很有用,但这个也只能解决一部分问题,对于一个有几十万商品的ECshop网店来说,最大的压力不是来自于自然访问的流量,而是勤劳的Google Bot或者Bi

Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!

Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松! 首页 / 关于我们 / 关于Payssion 关于Payssion Payssion,让跨境支付更轻松! Payssion,专注于为中小企业和个人提供"安全.轻松.便捷"的全球在线支付解决方案,为客户提供全球在线收款服务.我们的团队成员来自支付宝.Paypal等支付公司,我们对全球支付方面有着长期的经验积累! 为什

网店运营什么做

很多老板.负责人都喜欢把自己认为任何适合市场的完美产品拿来销售,他们的选择是以自我为导向性的.可是,最终付款的是消费者.决定要不要买产品的人也是消费者,所以你认可的产品消费者不一定喜欢. 而市场和消费者认可的是哪类产品?如何判定呢?这里有一个小建议:参考其他大中型卖家大力投放网络广告的产品,研发.生产和此类产品具有相同属性的产品,必定是被市场所接受的.当然,你若在其基础上更加优秀.完美,挖掘出更多卖点,那么你离成功就更进一步了. 网店运营总体来说指的是基于网络店铺的运营工作.主要包括以下:市场调

董明珠:90后爱开网店是国家隐患 危害实体经济w

该中心自2014年起就在圣彼得堡实行中医义诊.东方医院针灸科中医师郑入文深刻感受到当地群众对中医药的态度变化:"最初,他们似乎不相信中医,但有一次我用针灸为发育迟缓的小男孩缓解病症后,他的邻居们就争相前来就诊."北京中医药大学在俄罗斯的发展,从两年前的"举步维艰"到"渐入佳境",双方的合作也从签署框架协议到政府支持.在郑入文看来,中医药能被当地政府接纳是基于中医的疗效. 印度目前的GDP是中国的1/5多一点,中国战略核导弹的射程早已覆盖全球,我们

淘宝小号交易整理淘宝知识,为开网店做好准备哈

其实,个人创业者在创业初期所拥有的仅仅是一个梦想而已,或者说是一个起步的小摊子,还压根谈不上事业,别那么小气,至于分钱,没有舍哪有得,舍不得眼前的初始阶段的利润分享,那有更大的后期利润呢. 3.利润降低,薄利多销: 当然,这个团队无论有几个合作者,所持有的股份上可以做到大家平均,但在统一规划方面必须得确立一个主导者,不然就很容易出乱子,各人的资源不通过一个整体的框架进行调配整合,就是浪费,每个人的执行力若是没有集中在一个方向上,也是浪费,尤其是大家形成决议后,就必须确保集中所有的资源和力量,向一

淘宝小号交易平台常熟淘宝培训 常熟哪里有淘宝网店培训班 学习专业的淘宝知识 像南方教育看齐

公司地址:常熟市招商北路8号天虹服装城a栋705(汽车南站旁) 现在很多新手都疑惑怎么开淘宝店,而且如今淘宝竞争如此之大,如果我此时才进入淘宝大军,还能有市场,还能有机会吗?目前淘宝店铺达到600多万家,要怎么做才能创出一条路呢? 4.1 在线沟通工具 4.3 店铺管理工具 7.2 货物打包 7.3 物流配送 第4章 网店工具的运用 公司地址:常熟市招商北路8号天虹服装城a栋705(汽车南站旁) 7.1 仓储管理 4.4 店内营销工具 8.5 商城日常管理 8.3 商家平台规则 3.2 商品发布

让Ecshop网店系统用户自动登陆

让Ecshop网店系统用户户自动登陆,打开ecshop includes/init.php文件,可以发现Ecshop系统判断用户的SESSION不存在的时候会去读取存储在COOKIES里面的值.如下代码片段所示: if (empty($_SESSION['user_id'])) { if ($user->get_cookie()) { /* 如果会员已经登录并且还没有获得会员的帐户余额.积分以及优惠券 */ if ($_SESSION['user_id'] > 0) { update_user

正则表达式:网店中折扣价格-要求大于0小于10,且允许保留一位小数点

需求:网店中折扣价格-要求大于0小于10,且允许保留一位小数点 需求分析: 1,)取值范围为(0,10),两端都是开区间: 2,)“可保留一位小数”,可以不包含小数,但如果包含小树就一定要仅包含一位小数. 开发(javascript下): 第一步:0-10包含一位小数:/^\d(\.\d)?$/ 第二步:排除特殊的0和0.0和10,这样的写法为: /^[^0][^0.0][^10]\d(\.\d)?$/ 测试下:是否是我们想要的结果呢? 答案:no 具体原因,我也解释不清. 换种思路: 既然0.