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

西安做网站哪家最便宜网站建设代理合同

西安做网站哪家最便宜,网站建设代理合同,wordpress生成分类目录,鹤壁高端网站建设迪杰斯特拉算法 算法说明 迪杰斯特拉算法用来求解某一个起点到以其他所有点为终点的最短路径长度#xff1b; 算法思路-贪心算法 以下图为例 指定一个节点(即起点#xff09;#xff0c;例如计算“A”到其他节点的最短路径#xff1b;引入两个集合#xff08;S,U…迪杰斯特拉算法 算法说明 迪杰斯特拉算法用来求解某一个起点到以其他所有点为终点的最短路径长度 算法思路-贪心算法 以下图为例 指定一个节点(即起点例如计算“A”到其他节点的最短路径引入两个集合S,US集合包含所有已经求出其最短路径的点以及其最短长度U集合包括未求出的最短路径的点 所有和起点A直接相连的节点更新其与A的距离为路径长度没有直接相连的设置为∞ 从U集合中找出距离起点s路径最短的点加入S集合例如第一步最小的为A-D距离为2更新U集合路径if(A-DD-(B、C、E))(B、C、E)就更新U 重复执行横线内两步直到所有的节点都被加到了集合U中 下面使用迪杰斯特拉算法处理上图 ①选取起点为A首先刷新所有和A点直接通过边相连的点即B、D点将A-D置为2A-B置为4其他A-CA-E均为正无穷 算法代码 #include stdio.h #include iostream #include map #include stack #include vector #include queue #include algorithm #include sstream #include cstring #include string.h #include stdlib.h #define N 100005 #define INF 2147483647 typedef long long ll; using namespace std; typedef struct Edge {ll to;ll wei;Edge() {to-1;weiINF;//初始都为不可达状态} } E; ll n,M,s; vectorEm[N]; //邻接表 bool wh[N]; //集合U和Strue代表节点已经放入Sfalse表示还在U集合 ll dis[N]; //存放起点到节点的最短距离 ll cnt; //S集合元素个数 void Dijkstra(int s) {wh[s]true;cnt;while (cnt!n) {int MinINF,Minindex-1;//开始找S集合中距离s最近的节点for (int i1; in; i) {if (!wh[i](dis[i]Min)) {Mindis[i];Minindexi;}}//此时找到了最小的边//将此节点放到S集合wh[Minindex]true;cnt;//更新U集合路径for (int i0; im[Minindex].size(); i) {dis[m[Minindex][i].to]min(m[Minindex][i].weidis[Minindex],dis[m[Minindex][i].to]);}} } int main() {cinnMs;for (int i1; in; i) {if(is) {dis[s]0;} else {dis[i]INF;}}ll f,t,w;for (ll i1; iM; i) { //存储图 cinftw;int flag0;//有向图不双向 for (int j0; jm[f].size(); j) { //重边 if (m[f][j].tot) {m[f][j].weimin(w,m[f][j].wei);flag1;break;}}if (flag0) {E e;e.tot;e.weiw;m[f].push_back(e);}}//找到和起点直接相连的节点设置和起点直接相连的距离for (int i0; im[s].size(); i) {dis[m[s][i].to]m[s][i].wei;}Dijkstra(s);for (int i1; in; i) {if (is) {(i1)?cout0:cout 0;continue;}(i1)?coutdis[i]:cout dis[i];} }上述算法即是最朴素的迪杰斯特拉算法需要注意的是算法考虑了顶点有重边的情况这是洛谷的题目要求的题目链接 P3371 【模板】单源最短路径弱化版 但对于没有优化的迪杰斯特拉算法题目的强化版就会直接TLE分析朴素的Dijkstra算法我们发现可以优化的点有 每次寻找U集合中dis中最小的元素时使用了遍历的方法但我们可以使用小顶堆保证每次直接弹出最小的值不需要再去遍历 对于优先队列使用stl库的priority_queue实现。 迪杰斯特拉算法的优缺点 优点 算法思路简单比较容易上手使用经典的最短路算法适合大多数场景 缺点 时间复杂度和其他算法相比不太理想适用于节点n不太多的情况不能处理存在总花费为负值且从源点S可达的环路的图因为显然无限兜圈子花费会越来越小事实上存在负环的情况是抓住了贪心算法的弱点导致问题不能解决
http://www.pierceye.com/news/281264/

相关文章:

  • 网站设计教学西安免费企业网站模板图片
  • 吉林省住房和城乡建设厅网站官网手机百度app免费下载
  • 微信开放平台网站应用营销网站建设的规则
  • 网站制作语言有哪些对接标准做好门户网站建设
  • asp 公司网站源码贵州省建设厅的网站
  • 企业网站备案资料样本自建网站要多少钱
  • 女生做网站推广常用的网站推广方法
  • 营销型网站建设公司哪家建设开封做网站公司汉狮
  • 烟台专业网站建设seo实战培训教程
  • 上海建设项目环保验收公示网站dw做网站首页长宽设置多少
  • 中山网站制作系统创意视差wordpress主题
  • 安康网站开发公司广州微网站建设哪家好
  • 网站建设企业官网源码被代运营骗了怎么追回
  • 网站服务器 重启用邮箱做网站
  • 网站建设修改建议书网站快速收录方法
  • 网站建设项目步骤网站空间可以换吗
  • 美食网站界面设计网页设计制作代码大全
  • 宁波网站建设托管网站正在建设维护中页面
  • 古色古香网站模板响应式布局网站
  • 网站建设制作设计开发福建网站开发文档撰写
  • 钢管公司网站建设国外平面设计欣赏网站
  • 网站建设如何销售济南专门做网站的公司
  • 2018年淘宝客网站怎么做iis网站建设中
  • 网站倒计时代码企业网站建设运营方案
  • 课程网站开发过程东莞外贸模板建站
  • asp.net 网站提速廊坊企业官网搭建
  • 网站开发全过程电商数据分析
  • 代理 指定网站 hostwordpress图片无限放大
  • 中材建设有限公司招标网站包装设计网课答案
  • python云服务器网站开发实例外贸小家电网站推广