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

深圳设计网站建设不限关键词做网站平台

深圳设计网站建设,不限关键词做网站平台,如何建设一个彩票网站,电商文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴Dijkstra算法一、题目 1、原题链接 1488. 最短距离 2、题目描述 有 N 个村庄#xff0c;编号 1 到 N。 村庄之间有 M 条无向道路#xff0c;第 i 条道路连接村庄 ai 和村… 文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴Dijkstra算法一、题目 1、原题链接 1488. 最短距离 2、题目描述 有 N 个村庄编号 1 到 N。 村庄之间有 M 条无向道路第 i 条道路连接村庄 ai 和村庄 bi 长度是 ci。 所有村庄都是连通的。 共有 K 个村庄有商店第 j 个有商店的村庄编号是 xj。 然后给出 Q 个询问第 k 个询问给出一个村庄的编号 yk问该村庄距离最近的商店有多远 输入格式 第一行包含两个整数 N,M。 接下来 M 行每行包含三个整数 ai,bi,ci表示第 i 条道路连接村庄 ai 和村庄 bi长度是 ci。 再一行包含整数 K。 接下来 K 行每行包含一个整数 xj表示第 j 个有商店的村庄编号是 xj。 再一行包含整数 Q。 接下来 Q 行每行包含一个整数 yk表示询问编号为 yk 的村庄与其距离最近的商店之间的距离。 输出格式 对于每个询问输出该询问的结果。 数据范围 2≤N≤105,N−1≤M≤min(N(N−1)/2,105),1≤Q≤105,1≤K≤N,1≤ci≤10000 输入样例 7 7 1 2 5 1 4 3 2 3 2 2 5 1 3 6 7 5 6 8 6 7 6 3 7 5 4 7 1 2 3 4 5 6 7输出样例 3 1 3 0 0 6 0二、解题报告 1、思路分析 思路来源y总讲解视频 y总yyds 1将每个商店看做起点在图中添加一个虚拟源点起点该点到其后面所有商店的距离均为0有向边则可以将从村庄走到商店的最短路径转化为从村庄走到源点也就是从源点到村庄的最短路径两者等价。 2模拟上述过程求从虚拟源点到村庄的最短路径即为从村庄到商店的最短路径。 2、时间复杂度 时间复杂度为O(mlogn)n表示点数m表示边数 3、代码详解 #include iostream #include queue #include cstring #include utility using namespace std; typedef pairint,int PII; const int N100010,M3*N; //N代表点数M代表边数因需要为每个起点添加一条由虚拟源点指向的边所以开成点数3倍 int dist[N]; //存储每个点到虚拟源点的最短路径 int h[N],e[M],w[M],ne[M],idx; //h[]存储每个点第一条边的idxe[]存储每条边的终点ne[]存储每条边同起点的下一条边的idxidx存储边的编号 bool st[N]; int n,m; //邻接表中添加一条边 void add(int a,int b,int c){e[idx]b;w[idx]c;ne[idx]h[a];h[a]idx; } //堆优化dijkstra求最短路 int dijkstra(){memset(dist,0x3f,sizeof dist);priority_queuePII,vectorPII,greaterPII heap;dist[0]0;heap.push({0,0});while(!heap.empty()){PII theap.top();heap.pop();int vert.second;if(st[ver]) continue;st[ver]true;for(int ih[ver];i!-1;ine[i]){int je[i];if(dist[j]dist[ver]w[i]){dist[j]dist[ver]w[i];heap.push({dist[j],j});}}}if(dist[n]0x3f3f3f3f) return -3;else return dist[n]; } int main(){cinnm;memset(h,-1,sizeof h);while(m--){int a,b,c;cinabc;add(a,b,c);add(b,a,c);}int k;cink;while(k--){int x;cinx;add(0,x,0); //添加一个虚拟源点到每个商店距离为0的有向边}dijkstra();int q;cinq;while(q--){int y;ciny;coutdist[y]endl;}return 0; }三、知识风暴 Dijkstra算法 基本思想将一个带权有向图中的顶点分成两组一组是未确定最短路的一组是已确定最短路的。每次将未确定最短路集合中的点按照与源点的距离递增加入已确定最短路的集合中同时每次往已确定最短路集合中加入一个点后需要用这个点来更新其他点距离源点的距离。当所有点的最短路都已确定算法结束。
http://www.hkea.cn/news/14504019/

相关文章:

  • 网站建设项目验收报告合肥婚恋网站建设
  • 在东莞建公司网站甘肃省第八建设集团公司网站
  • 大气企业网站模板自己建设网站不会咋办呀
  • 公司网站优化去哪里学seo网站优化服务商
  • 汽车网站建设开题报告Wordpress禁止爬虫ip
  • 建设美食网站的目的和功能定位wordpress 跳转链接地址
  • 深圳建设网站联系电话安卓手机网站源码下载
  • 2017我们一起做网站百度一下首页官网
  • 怎么修改网站的关键词学计算机的毕业后可以找什么工作
  • 中山市网站开发外包公司刚做网站做多用户还是单用户
  • 游戏网站设计风格有哪些旅游网站开发系统
  • 襄阳市住房城乡建设部网站广西网站建设与规划
  • 网站后台用esayui做公司推广发帖网站怎么做
  • 精品课程云网站建设招代理的网站要怎么做的
  • 汕头网站推广seo什么推广方法是有效果的
  • 网站空间支付方式郑州联通网站备案
  • 郑州电商网站建设网站内容发布平台源码
  • 网站开发构成微网站开发提供的服务
  • 漫画门户网站怎么做的启用中文域名大网站
  • 代做效果图网站好教学资源库 网站建设
  • 在哪里可以改动网站标题怎么做视频解析的网站
  • 外贸网站如何做推广是什么哪些网站容易被百度收录
  • php网站开发实例教程源码想做个人域名网站怎么做
  • 工具型网站有哪些城阳网站开发公司电话
  • 互联网行业招聘网站邯郸封控最新消息
  • asp.net做网站源代码网站开发设计培训
  • 网站建设技术团队有多重要性海外网站免费建设
  • 塑模毕业设计代做网站软件开发模型比较
  • 苏州知名网站制作公司久久文化传媒有限公司招聘信息
  • 北流科技网站建设宜兴网站制作