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

建个企业网站要多少钱滨州j建设局网站投诉电话

建个企业网站要多少钱,滨州j建设局网站投诉电话,wordpress commer,网络运营是什么专业Floyd 算法 重点&#xff1a;多源最短路径算法&#xff0c;前的最短路径算法是单源的也就是只有一个起点。递推每个节点之间最短的路径 时间复杂度&#xff1a; O(n^3)空间复杂度&#xff1a;O(n^2) #include <iostream> #include <vector> using namespace std…

Floyd 算法

重点:多源最短路径算法,前的最短路径算法是单源的也就是只有一个起点。递推每个节点之间最短的路径

  • 时间复杂度: O(n^3)
  • 空间复杂度:O(n^2)
#include <iostream>
#include <vector>
using namespace std;int main() {int n, m, p1, p2, val;cin >> n >> m;vector<vector<int>> grid(n + 1, vector<int>(n + 1, 10005));  // 因为边的最大距离是10^4for(int i = 0; i < m; i++){cin >> p1 >> p2 >> val;grid[p1][p2] = val;grid[p2][p1] = val; // 注意这里是双向图}// 开始 floydfor (int k = 1; k <= n; k++) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {grid[i][j] = min(grid[i][j], grid[i][k] + grid[k][j]);}}}// 输出结果int z, start, end;cin >> z;while (z--) {cin >> start >> end;if (grid[start][end] == 10005) cout << -1 << endl;else cout << grid[start][end] << endl;}
}

A * 算法

重点:Astar关键在于启发式函数,也就是影响广搜或者 dijkstra 从容器(队列)里取元素的优先顺序

#include<iostream>
#include<queue>
#include<string.h>
using namespace std;
int moves[1001][1001];
int dir[8][2]={-2,-1,-2,1,-1,2,1,2,2,1,2,-1,1,-2,-1,-2};
int b1, b2;
// F = G + H
// G = 从起点到该节点路径消耗
// H = 该节点到终点的预估消耗struct Knight{int x,y;int g,h,f;bool operator < (const Knight & k) const{  // 重载运算符, 从小到大排序return k.f < f;}
};priority_queue<Knight> que;int Heuristic(const Knight& k) { // 欧拉距离return (k.x - b1) * (k.x - b1) + (k.y - b2) * (k.y - b2); // 统一不开根号,这样可以提高精度
}
void astar(const Knight& k)
{Knight cur, next;que.push(k);while(!que.empty()){cur=que.top(); que.pop();if(cur.x == b1 && cur.y == b2)break;for(int i = 0; i < 8; i++){next.x = cur.x + dir[i][0];next.y = cur.y + dir[i][1];if(next.x < 1 || next.x > 1000 || next.y < 1 || next.y > 1000)continue;if(!moves[next.x][next.y]){moves[next.x][next.y] = moves[cur.x][cur.y] + 1;// 开始计算Fnext.g = cur.g + 5; // 统一不开根号,这样可以提高精度,马走日,1 * 1 + 2 * 2 = 5next.h = Heuristic(next);next.f = next.g + next.h;que.push(next);}}}
}int main()
{int n, a1, a2;cin >> n;while (n--) {cin >> a1 >> a2 >> b1 >> b2;memset(moves,0,sizeof(moves));Knight start;start.x = a1;start.y = a2;start.g = 0;start.h = Heuristic(start);start.f = start.g + start.h;astar(start);while(!que.empty()) que.pop(); // 队列清空cout << moves[b1][b2] << endl;}return 0;
}

总结

Floyd算法本质是动态规划,递推算出每个节点之间的最短距离。可以用于有负权值的最短路径。

Astar 是一种 广搜的改良版。 有的是 Astar是 dijkstra 的改良版。

http://www.15wanjia.com/news/190865.html

相关文章:

  • 网站建设竞价托管外包国家反诈中心app下载
  • 手机网站需要域名吗连云港优化网站团队
  • 网站建设与管理代码广西人才市场职称网
  • 深圳微网站制作wordpress分类目录404
  • python可以做网站后台吗python基础教程答案
  • 太原网站建设ty556分享此博文wordpress
  • 网站建设到运营需要多少钱wordpress storefront
  • 建立网站需要什么手续学校培训网站建设
  • 商务公司网站建设陕西住房和城乡建设厅网站
  • 海口网站建设方案策划网站字体特效
  • 建筑劳务东莞网站建设WordPress大前端DUX5.1
  • 淅川做网站vs哪个版本做网站好
  • 检测网站名 注册网络管理系统的组成
  • enjooy wordpress丽水网站建设seo
  • 安徽网站优化怎么做wordpress 微信关注插件
  • 维持一个素材网站要多少钱东莞专业微网站建设价格低
  • 丰城做网站国内知名品牌设计公司
  • 南昌网站建设机构广州最穷的三个区
  • 昆山哪里有人做网站申请域名需要哪些资料
  • 旅游手机网站开发营销渠道模式有哪些
  • 视频网站seo怎么做怎么去找做网站的
  • 浙江专业网站seo网址之家hao123主页
  • 网站关键词优化公司哪家好西安网络推广哪家好
  • 机房建设网站模板seo提高关键词
  • 青岛知名网站建设多少钱有没有专业做挂的网站吗
  • 会员网站建设怎样下载字体到wordpress
  • 泰州网站建设公司哪家好网络平面设计包括哪些
  • 365做网站网站平台建设及运营推广策划方案
  • 为什么没人做物流网站深圳服装网站建设制作开发
  • 河北建设集团有限公司网站门户网站建设与管理办法