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

园区网站建设调研报告如何免费推广自己的网站

园区网站建设调研报告,如何免费推广自己的网站,cad二次开发,搜狗网址今天,解决了,多个点的最短路问题 用的dfs,配上了floyed计算出的广源距离 难点是要记录路线,dfs记录路线就很烦 但是好在结束了,经过无数的测试,确保没啥问题(应该把) 来看看我的代码 void dfs(int b[], int x, int* sum, int last, int sums, int a[], BFS& s, Floyd_A…

今天,解决了,多个点的最短路问题

用的dfs,配上了floyed计算出的广源距离

难点是要记录路线,dfs记录路线就很烦

但是好在结束了,经过无数的测试,确保没啥问题(应该把)

来看看我的代码


void dfs(int b[], int x, int* sum, int last, int sums, int a[], BFS& s, Floyd_AssistArray* fl) {if (x == s.size) {if (*sum > sums) {*sum = sums;printf("sun %d\n", *sum);for (int ko = 2;ko <= s.size;ko++) {b[ko] = a[ko];printf("ssssss\n");}}}else {for (int ko = 2;ko <= s.size;ko++) {if (s.map[s.mapr[ko]] == 0&&fl->Shortest[last][s.mapr[ko]]!=nocnect) {x++;printf("sss%d\n", x);sums += fl->Shortest[last][s.mapr[ko]];printf("sum%d\n", sums);s.map[s.mapr[ko]] == 1;a[x] = s.mapr[ko];dfs(b, x, sum, s.mapr[ko], sums, a, s, fl);a[x] = 0;sums-= fl->Shortest[last][s.mapr[ko]];s.map[s.mapr[ko]] == 0;x--;}}}}
//bfs,的算法,返回距离最短的,走法void findr(int i, int a[], AMGraph* f, Floyd_AssistArray* fl) {int b[11] = { 0 };b[1] = i;//起点int j = 1;for (int io = 1;io <= 10;io++) {if (a[io] != 0 &&io!=i) {j++;b[j] = io;}}for (int gh = 1;gh <= j;gh++) {printf("%d\n", b[gh]);}BFS s;for (int j = 1;j <= 10;j++) {s.map[j] = 0;s.mapr[j] = b[j];}s.map[i] = 1;//给起点标记s.mapr[1] = i;s.size = j;int sum = nocnect;int c[11] = { 0 };c[1] = i;dfs(b, 1, &sum, i, 0, c, s, fl);//print();
}
//处理信息

可以看到,bfs函数传的东西有点多

没办法,我来解释一下,b数组是返回答案的数组,sum是返回最短距离的最终答案

x是搜到了第几个数(第几个点),last是记录上个点,要的是两点之间的距离,所以要记录上个点

sums是记录距离和

a数组是记录点的

BFS 是提供dfs要的变量,比如标记的地图

和原来的点集以及有几个点

Floyd_AssistArray* fl  我们要的距离

typedef struct {int map[11];//打标记的int mapr[11];//记录点int size;//记录个数 
}BFS;
//dfs的辅助数组

辅助数组的核心内容

接下来就是界面

为了可以,直接点击输入点把界面又搞了一下

 

黑色代表景点,被选中了,也可以取消选中 

跑完bfs的数组就要开始回溯了路路径了

PathStack ph;ph.top = 0;for (int h = 1;h <= s.size;h++) {printf("%d\n", b[h]);}for (int jk = s.size;jk >= 2;jk--) {int k = 0;while (fl->PrePath[b[jk]][b[jk-1]] != b[jk - 1]) {Push(&ph, b[jk]);printf(" %d\n", b[jk]);k = 1;b[jk] = fl->PrePath[b[jk]][b[jk - 1]];}if (k == 0) {Push(&ph, b[jk]);printf(" %d\n", b[jk]);}

回溯到栈内,明天写了输出函数就可以用栈直接遍历了 

胜利就在眼前了呀!!现在811行

明天基本上得有1k了,但是还是写的很不好哎呀我是真的菜

以上代码(的bug全部测试完了,痛真的太痛了)

http://www.khdw.cn/news/26653.html

相关文章:

  • 好的企业型网站模板郴州seo
  • 做网站需要独立显卡吗电商平台排名
  • 网站建设哪里去学石家庄百度seo
  • 网页设计与制作论文题目seo信息网
  • 哈尔滨 做网站公司有哪些百度广告优化
  • 做销售除了网站展会还有其他方法教育培训报名
  • 从0到建网站kol推广是什么意思
  • 建设银行网站怎么注销网银市场策划方案
  • delphi可以做网站吗外贸商城建站
  • wordpress教程dara全专业优化公司
  • 用jsp做新闻网站搜狗站长平台
  • 游戏网站cms嘉兴seo外包
  • app开发和网站开发价格搜索引擎优化案例
  • 中英网站开发seo查询官网
  • 网站建设的现状和未来培训体系
  • 专做健身餐的网站百度问一问免费咨询
  • 做新网站 备案证明交接免费招聘信息发布平台
  • 网站建设有什么工作搜索引擎的两个基本方法
  • 简单做网站的软件搜索引擎优化seo的英文全称是
  • 做二手手机的网站有哪些seo排名课程咨询电话
  • 做私人网站 违法什么软件可以发布推广信息
  • 公司网站一年多少钱chinaz站长素材
  • 网站开发使用的语言类百度云资源共享
  • 机票酒店 网站建设重庆seo网络优化咨询热线
  • wordpress做ip统计用广州seo推广获精准访问量
  • dw做的网站怎么放到服务器上英文外链seo兼职
  • 自己做代购网站seo网站推广招聘
  • 个人作品网站策划书外贸seo建站
  • 网上的毕业设计代做网站靠谱吗互联网公司
  • 大连网站建设怎么做58同城黄页推广