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

旅游电子商务网站排名免费开源代码网站

旅游电子商务网站排名,免费开源代码网站,关于党的网页设计,wordpress单选框一道经典的 bfs 题。 提醒:本题解是为小白专做的,不想看的大佬请离开。 这道题首先一看就知道是 bfs,但是数据点不让我们过: 1 ≤ H , W ≤ 1 0 9 1\le H,W\le10^9 1≤H,W≤109。 那么我们就需要优化了,从哪儿下手…

一道经典的 bfs 题。

提醒:本题解是为小白专做的,不想看的大佬请离开。

这道题首先一看就知道是 bfs,但是数据点不让我们过: 1 ≤ H , W ≤ 1 0 9 1\le H,W\le10^9 1H,W109

那么我们就需要优化了,从哪儿下手呢?看数据点第三行: 1 ≤ N ≤ 1 0 5 1\le N\le10^5 1N105

图很大,但是石头不多,那么我们就可以从石头下手。这里需要我们把思维方式转换过来一下。

正常的 bfs 是去找路,那我们就找石头!那石头在哪儿呢?

首先,我们不可能在 bfs 的时候把所有的石头全扫一遍然后找,这样很明显会 TLE。而我们再回忆一下 bfs 的过程:上下左右全走一遍,然后……

对啊!bfs 只扫这个点的这一行、这一列,我们为什么不能把每一行、每一列的石头所在的列数、行数保存下来呢?但还是有个问题:如果我要跑一行的数据,很有可能会被数据点卡,怎么再优化呢?这就要请出查询时间复杂度最低的算法了:二分!

总时间复杂度:最差情况下 O ( n log ⁡ 2 ( n ) ) O(n\log_2(n)) O(nlog2(n))

代码实现:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,t,x,y,stx,sty,edx,edy;
map<pair<int,int>,int>dis;
map<int,set<int>>h,l;
queue<pair<int,int>>q;
void add(int u,int v,int now) {if(dis.find(make_pair(u,v))==dis.end()) {dis[make_pair(u,v)]=now;q.push(make_pair(u,v));}
}
signed main() {cin>>n>>m>>t>>stx>>sty>>edx>>edy;while(t--) {cin>>x>>y;h[x].insert(y);//保存行和列l[y].insert(x);}dis[make_pair(stx,sty)]=0;q.push(make_pair(stx,sty));while(!q.empty()) {pair<int,int>p=q.front();q.pop();int u=p.first,v=p.second;int now=dis[make_pair(u,v)];if(u==edx&&v==edy) {cout<<now;return 0;}auto it=h[u].lower_bound(v);//二分if(it!=h[u].end()) {add(u,(*it)-1,now+1);//这里我试过把函数中的部分放下来,但就是不知道为什么会错}if(it!=h[u].begin()) {add(u,(*(--it))+1,now+1);}it=l[v].lower_bound(u);if(it!=l[v].end()) {add((*it)-1,v,now+1);}if(it!=l[v].begin()) {add((*(--it))+1,v,now+1);}}cout<<"-1";return 0;
}
http://www.dtcms.com/wzjs/242848.html

相关文章:

  • 安庆经济开发区人才网seo关键词排名优化矩阵系统
  • 网站建设销售是什么网上销售哪些平台免费
  • 保定网站设计概述seo和sem哪个工资高
  • 虾皮跨境电商网站搜索引擎优化排名关键字广告
  • 兰州网站建设技能论文seo排名平台
  • 宝安网站建设哪家好重庆森林经典台词梁朝伟
  • 西安免费做网站多少钱友情链接又称
  • wordpress和帝国区别网络优化论文
  • 中华人民共和国工信部网站查长沙做网站的公司有哪些
  • 吴江网站制作公司google play下载安装
  • 网站开发技术流程太原网络推广公司哪家好
  • 查看一个网站的备案好看的网站模板
  • 怎么做网站访问截取ip优化大师下载安装app
  • 网站制作培训中心青岛seo优化
  • 有ecs怎么做网站快速排名上
  • 网站的二级域名如何进行网络推广和宣传
  • 营销型企业网站模板在百度上怎么发布信息
  • 建设网站 后期的提成方案百度网站怎样优化排名
  • 备案 网站名称涉及到行业网站关键词优化代理
  • 重庆手机版建站系统信息seo教学培训
  • emlog怎么做视频网站网络营销策略有哪几种
  • 北京社招网站网络营销的种类有哪些
  • 网站转化率低百度官方网站网址
  • 网站 二级域名需要备案吗怎么营销推广
  • 网站开发日记seo行业
  • 部署一个网站要做哪些工作网站建站哪家公司好
  • 怎么做游戏网站俄罗斯搜索引擎入口 yandex
  • 最专业网站建设公司首选网站权重如何查询
  • 网站建设公司转型百度推广代理公司哪家好
  • 电子商务网站建设收益举例重庆seo公司排名