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

b2c电子商务网站比较搜索引擎有哪些网站

b2c电子商务网站比较,搜索引擎有哪些网站,专业的聊城做网站费用,北京网站建设 和君问题 D: 共享单车 题目描述 共享单车走进烟台,小明决定尝试。小明启动共享单车 App,轻松地找到附近的单车。那么问题来了,到最近的那辆单车,小明大约要走多少米呢? 现在简化问题。将地图设定成一个由 100100 米的像…

问题 D: 共享单车

题目描述

共享单车走进烟台,小明决定尝试。小明启动共享单车 App,轻松地找到附近的单车。那么问题来了,到最近的那辆单车,小明大约要走多少米呢?

现在简化问题。将地图设定成一个由 100×100 米的像素块组成的二维平面区域。如果一个方块内有单车,则像素块显示为字符 x;如果此方块内是可以通行的路,则显示为 .;再如果方块是建筑物,则显示为 *,建筑物不能通行。

小明在地图上的位置显示为 o,可以朝,“上”、“下”、“左”,“右”,“左上”,“左下”,“右上”,“右下”八个方向走。下图所示为一个小明站在像素方块 O,如果小明向右走到 X,则走 100 米;如果向右上走,则走 141 米(不需要开方)。

假设小明和单车都在方块的中央。现在给出 T 幅根据以上规则建立的地图,地图行数和列数分别为 n 和 m,请分别估算小明要走多少米才能到最近的单车?

给出的地图中至少有一辆单车,如果最终无法到达单车的位置,输出 -1

输入

第 1 行 T,表示下面有 T 组测试数据

对于每组测试数据

第 1 行 n 和 m,表示地图的大小;

第 2 行开始,给出具体的地图 。

输出

T 行数据

每行 1 个整数,表示问题的解

输入输出样例

样例输入 #1

复制

2
3 8
.....x..
.o...x..
........
8 10
.***......
.***......
.***..x...
..........
.....*****
..o..*****
.......x..
...*******
样例输出 #1

复制

400
523

提示

如果计算中出现小数,那么直接舍弃。最后的输出的结果为整型。

记忆化搜索:

记忆化搜索是深搜的一种剪枝策略,记忆化搜索就是让程序记住一些东西,然后在需要时可以快速调用,用什么来存贮数据?用数组

记忆化搜索是在搜索过程中,会有很多重复计算,如果我们能记录一些状态的答案,就可以减少复搜索量
 

记忆化搜索的核心实现:

1.首先,要通过一个数组记录已经存储下的搜索结果

2.状态表示,由于是要用数组实现,所以状态最好可以用数字表示,

3.在每一状态搜索的开始,高效的使用数组查看这个状态是否出现过,如果已经做过,直接调用答案,如果没有,则按正常方法搜索

以斐波那契数列为例,记忆化代码入下:

int memorize[N]; //保存结果
int fib(int n)
{if(n==1 || n==2) return 1; if(memorize[n]!=0) return memorize[n];  //直接返回保存的结果,不再递归memorize[n]=fib(n-1)+fib(n-2);          //递归计算结果,并记忆return memorize[n];
}

在这段代码中,一个斐波那契数列只计算一次,所以总时间复杂度为O(n)
 

我们先用一道熟悉的题目引入记忆化搜索:
https://blog.csdn.net/2302_79545206/article/details/137286031?spm=1001.2014.3001.5501

思路: 

从o点出发,要寻找距离最近的共享单车,因为要求最近距离,我们初始化距离为无穷远,用一个d数组来记录个点距离o点的最短距离,并初始化为无穷大,每次进行下一次dfs之前,首先先进行判断走这一步是否可以使到达我们要到达的点的距离更近,这样进入dfs便可以直接更新,找到一个共享单车,做比较寻找最优解。

代码实现: 

#include<iostream>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>using namespace std;typedef long long ll;typedef pair<int,int> PII;const int INF=0x3f3f3f3f;
const int N=105;char g[N][N];
bool vis[N][N];int ans=INF;
bool f=false;
int n,m;int d[N][N];///记忆化搜索int xx,yy;void dfs(int x,int y,int dis)///(x,y)记录点的位置,dis记录该点距离o点的距离
{if(x<1 || x>n || y<1 || y>m) return;///判断点是否越界d[x][y]=dis; /// 更新最短距离,因为已经做过判断了,所以这里直接更新if(g[x][y]=='x')///找到共享单车{f=true;ans=min(ans,d[x][y]);///选择距离更近的最优解return;}else{if(!vis[x+1][y] && dis+100<d[x+1][y] && g[x+1][y]!='*') ///右{vis[x+1][y]=true;dfs(x+1,y,dis+100);vis[x+1][y]=false;}if(!vis[x-1][y] && dis+100<d[x-1][y] && g[x-1][y]!='*') ///左{vis[x-1][y]=true;dfs(x-1,y,dis+100);vis[x-1][y]=false;}if(!vis[x][y+1] && dis+100<d[x][y+1] && g[x][y+1]!='*') ///上{vis[x][y+1]=true;dfs(x,y+1,dis+100);vis[x][y+1]=false;}if(!vis[x][y-1] && dis+100<d[x][y-1] && g[x][y-1]!='*') ///下{vis[x][y-1]=true;dfs(x,y-1,dis+100);vis[x][y-1]=false;}if(!vis[x-1][y-1] && dis+141<d[x-1][y-1] && g[x-1][y-1]!='*') ///左下{vis[x-1][y-1]=true;dfs(x-1,y-1,dis+141);vis[x-1][y-1]=false;}if(!vis[x+1][y+1] && dis+141<d[x+1][y+1] && g[x+1][y+1]!='*') ///右上{vis[x+1][y+1]=true;dfs(x+1,y+1,dis+141);vis[x+1][y+1]=false;}if(!vis[x-1][y+1] && dis+141<d[x-1][y+1] && g[x-1][y+1]!='*') ///左上{vis[x-1][y+1]=true;dfs(x-1,y+1,dis+141);vis[x-1][y+1]=false;}if(!vis[x+1][y-1] && dis+141<d[x+1][y-1] && g[x+1][y-1]!='*') ///右下{vis[x+1][y-1]=true;dfs(x+1,y-1,dis+141);vis[x+1][y-1]=false;}}return;
}void solve()
{cin>>n>>m;ans=INF;///初始化memset(d,0x3f,sizeof(d)); ///初始化图上每个点到小明的距离为无穷远f=false;///不能到达共享单车memset(vis,false,sizeof(vis));///因为是多组数据输入输出因此要初始化for(int i=1; i<=n; i++)///图的存储{for(int j=1; j<=m; j++){cin>>g[i][j];if(g[i][j]=='o'){xx=i;yy=j;}}}dfs(xx,yy,0);///从o点开始搜索if(f==false) printf("-1\n");else cout<<ans<<endl;}int main()
{int T;cin>>T;while(T--){solve();}return 0;
}

http://www.hkea.cn/news/453393/

相关文章:

  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广