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

南京网络设计/优化设计七年级下册数学答案

南京网络设计,优化设计七年级下册数学答案,做图的软件网站,网站要备案吗1 1500ms时间能够慷慨挥霍 2 内存一般也能够挥霍&#xff0c;可是要记得释放用完的内存&#xff0c;否则可能累积到内存超限 3 BFS分层注意细节&#xff0c;下三角矩阵找邻接节点也要注意细节 #include <iostream> #include <malloc.h> #include <queue>usin…

1 1500ms时间能够慷慨挥霍

2 内存一般也能够挥霍,可是要记得释放用完的内存,否则可能累积到内存超限

3 BFS分层注意细节,下三角矩阵找邻接节点也要注意细节


#include <iostream>
#include <malloc.h>
#include <queue>using namespace std;bool* CreateMatrixGraph(const int& N)
{int arraySize = N * (N + 1) / 2;bool* graph = (bool*) malloc(sizeof(bool) * arraySize);for (int i = 0; i < arraySize; i++){graph[i] = 0;}return graph;
}bool IsMatrixConnected(const int& a, const int& b, bool* graph, const int& N)
{if (a == b){return false;}if (a > b){return (graph[a * (a + 1) / 2 + b]);}else{return (graph[b * (b + 1) / 2 + a]);}
}void MatrixConnect(const int& a, const int& b, bool* graph, const int& N)
{if (a >= N || b >= N){printf("ERROR : NODE OUT OF RANGE\n");//return;}if (IsMatrixConnected(a, b, graph, N)){printf("ERROR : %d AND %d ALREADY CONNECTED\n", a, b);//return;}if (a == b){printf("ERROR : THE SAME VERTICE\n");//return;}if (a > b){graph[a * (a + 1) / 2 + b] = 1;}else{graph[b * (b + 1) / 2 + a] = 1;}
}void GetAdjoinVertice(const int& vertice, bool* graph, int* adjoinVertice, int N)
{int currentIndex = 0;// 横行计算const int VERTICALPRIMEINDEX = (vertice*vertice + vertice) / 2;for (int j = 0; j <= vertice; j++)  // 共遍历了(vertice+1)个元素{if (graph[VERTICALPRIMEINDEX + j] == 1){adjoinVertice[currentIndex++] = j;}}// 竖向计算初始位置。该位置是横向计算的最后一个位置const int COLUMNPRIMEINDEX = (vertice*vertice + vertice) / 2 + vertice;for (int j = 0; j < N - vertice - 1; j++){if (graph[COLUMNPRIMEINDEX + (j+1) * (vertice+1) + (j*j + j) / 2] == 1){adjoinVertice[currentIndex++] = vertice + j + 1;}}
}int BFS(bool* graph, int vertice, bool* isVisited, int N)
{// 找vertice的朋友queue<int> t;t.push(vertice);isVisited[vertice] = true;// 近处的朋友包含自己我也是醉的不行int closeFriendship = 1;int lastLevelFriend = 0;int currentLevel = 0;int currentLevelFriend = 0;while (!t.empty()){int currentVertice = t.front();t.pop();//printf("%d ", currentVertice);int* adjoinVertice = (int*) malloc(sizeof(int) * N);for (int i = 0; i < N; i++){adjoinVertice[i] = -1;}GetAdjoinVertice(currentVertice, graph, adjoinVertice, N);int i = 0;// 假设上层朋友数已经为0,即当前层遍历已经结束,将当前层朋友数设为上层朋友数。然后当前层朋友数置0if (lastLevelFriend == 0){currentLevel++;lastLevelFriend = currentLevelFriend;currentLevelFriend = 0;}if (currentLevel > 6){return closeFriendship;}// 遍历当前层的朋友while (adjoinVertice[i] != -1){if (!isVisited[adjoinVertice[i]]){t.push(adjoinVertice[i]);isVisited[adjoinVertice[i]] = true;closeFriendship++;currentLevelFriend++;}i++;}if (lastLevelFriend > 0){lastLevelFriend--;}free(adjoinVertice);}return closeFriendship;
}int main()
{int N;int M;scanf("%d %d", &N, &M);N++;bool* graph = CreateMatrixGraph(N);for (int i = 0; i < M; i++){int node1;sint node2;scanf("%d %d", &node1, &node2);MatrixConnect(node1, node2, graph, N);}bool* isVisited = (bool*) malloc(sizeof(bool) * N);// 输出for (int m = 1; m <= N - 1; m++){for (int i = 0; i < N; i++){isVisited[i] = false;}float closeFriend = BFS(graph, m, isVisited, N);float percent = closeFriend / (N - 1) * 100;printf("%d: %.2f%%\n", m, percent);}return 0;
}


http://www.lbrq.cn/news/9631.html

相关文章:

  • 三站合一 网站建设/浙江企业网站建设
  • 成都电商网站开发/百度搜索排名怎么靠前
  • 宁波电器网站制作/山西百度查关键词排名
  • 维护网站信息/微信代运营
  • 起点网站建设/网址查询域名解析
  • 如何提高你的网站的粘性/免费的客户资源怎么找
  • 怎样可以查到做网站公司/网站优化排名网站
  • 深圳横岗网站建设/seo的研究对象
  • win10系统可以做网站搭建/营销培训课程2022
  • 代驾小程序源码/优化设计方法
  • 餐饮品牌网站建设/每日新闻最新消息
  • 可以做网站的域名后缀/百度浏览器网址是多少
  • 在境外做色情网站/百度高级搜索网址
  • 中山专业网站建设价格/石嘴山网站seo
  • 三亚做网站哪家好/免费网站建设seo
  • javaweb社交网站开发/搜狐综合小时报2022113011
  • 个人网站做外链方法/如何优化关键词搜索排名
  • 传奇页游平台/免费seo工具大全
  • 郑州专业做淘宝网站建设/关于市场营销的100个问题
  • 青岛崂山区网站建设/怎么从网上找客户
  • 百度怎么做网站广告/汕头网站排名优化
  • 用点心做点心官方网站/2022年十大网络流行语发布
  • 怎样在工商局网站做公示/怎么优化百度关键词
  • 加强网站硬件建设方案/seo优化的主要内容
  • 2018网站建设涉及/企业培训公司
  • 怎么做网站分站/品牌营销策略有哪些方法
  • 免费推广网站入口2023燕/舆情分析系统
  • 春播网站是谁做的/seo搜索引擎招聘
  • 辽源网站优化/seo是什么
  • 许昌建网站/广东佛山疫情最新情况
  • C++算法题目分享:二叉搜索树相关的习题
  • RISC-V汇编新手入门
  • Collections.synchronizedList是如何将List变为线程安全的
  • 深入分析 Linux PCI Express 子系统
  • 软件SPI实现(3):SPI协议测试(使用W25Q64)
  • Winsows系统去除右键文件显示的快捷列表