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

大连网站建设咨询推介网体育

大连网站建设咨询,推介网体育,凤岗网站仿做,商务网站建设公司拓扑排序精讲 关键&#xff1a; 先找到入度为0的节点&#xff0c;把这些节点加入队列/结果&#xff0c;然后依次循环再找。 #include <iostream> #include <vector> #include <queue> #include <unordered_map> using namespace std; int main() {int …

拓扑排序精讲

关键:

先找到入度为0的节点,把这些节点加入队列/结果,然后依次循环再找。

#include <iostream>
#include <vector>
#include <queue>
#include <unordered_map>
using namespace std;
int main() {int m, n, s, t;cin >> n >> m;vector<int> inDegree(n, 0); // 记录每个文件的入度unordered_map<int, vector<int>> umap;// 记录文件依赖关系vector<int> result; // 记录结果while (m--) {// s->t,先有s才能有tcin >> s >> t;inDegree[t]++; // t的入度加一umap[s].push_back(t); // 记录s指向哪些文件}queue<int> que;for (int i = 0; i < n; i++) {// 入度为0的文件,可以作为开头,先加入队列if (inDegree[i] == 0) que.push(i);//cout << inDegree[i] << endl;}// int count = 0;while (que.size()) {int  cur = que.front(); // 当前选中的文件que.pop();//count++;result.push_back(cur);vector<int> files = umap[cur]; //获取该文件指向的文件if (files.size()) { // cur有后续文件for (int i = 0; i < files.size(); i++) {inDegree[files[i]] --; // cur的指向的文件入度-1if(inDegree[files[i]] == 0) que.push(files[i]);}}}if (result.size() == n) {for (int i = 0; i < n - 1; i++) cout << result[i] << " ";cout << result[n - 1];} else cout << -1 << endl;}

dijkstra(朴素版)精讲

不能处理负权重,贪心算法,minDist表示距离原点最近的距离。

跟prim一样

#include <iostream>
#include <vector>
#include <climits>
using namespace std;int main(){int n,m,s,e,v;cin>>n>>m;vector<vector<int>> grid(n+1,vector<int>(n+1, INT_MAX));for(int i=0;i<m;i++){cin>>s>>e>>v;grid[s][e]=v;}vector<bool> visited(n+1, false);vector<int> minDist(n+1, INT_MAX);int start = 1;minDist[start] = 0;for(int i=0;i<n;i++){int cur = -1;int minVal = INT_MAX;//1.选择未到过的且距离起始点最近车站for(int j=1;j<=n;j++){if(!visited[j] && minDist[j]<minVal){cur = j;minVal = minDist[j];}}if(cur == -1) {break;}//2.到达该车站visited[cur] = true;//3.更新minDistfor(int j=1;j<=n;j++){if(!visited[j] && grid[cur][j]!=INT_MAX && minDist[cur]+grid[cur][j]<minDist[j]){minDist[j] = minDist[cur]+grid[cur][j];}}// cout<<"cur="<<cur<<endl;// for(int k=1;k<=n;k++){//     cout<<minDist[k]<<" ";// }// cout<<endl;}int count = 0;for(int i=1;i<=n;i++){if(visited[i]){count++;}}if(count==n){cout<<minDist[n]<<endl;}else{cout<<-1<<endl;}}

http://www.yayakq.cn/news/570950/

相关文章:

  • 梧州网站推广方案两学一做11月答题网站
  • windows 2008 iis添加网站佛山宣传片制作
  • 用墨刀做视频网站seo推广和百度推广的区别
  • 网站后台选项卡效果罗村网站建设公司
  • 东莞建站模板大全谁给个网站呀
  • 定做网站建设如何建立网站数据库连接
  • ui培训设计哪里好seo价格查询公司
  • 淄博电商网站建设ai生成图片在线制作
  • 网站怎么提升实用性上海云站网络技术服务中心
  • 淮安网站建设个人博客网站建设中ftp起什么作用
  • 网站建设与管理就业岗位企业网站的设计策划
  • 创建qq网站做网站博客怎么推广
  • 电子商务网站建设与管理实训总结广西南宁网站建设排行榜
  • 怎么才能设计好一个网站免费logo生成器官网
  • 青羊区区建设局网站易网做的网站后台
  • 网站建设系统课程网站制作排行榜
  • 手机网站建设的影响ui培训的课程都有哪些
  • 如何做商业网站网站服务合同用交印花税吗
  • 网站排行榜查询php做网站示例
  • 做网站用什么面板好小程序开发文档
  • 地方网站自助建站大连模板建站哪家好
  • 竞拍网站建设做读书笔记的网站
  • 电信备案网站打不开企业网站 建设 流程
  • 展览搭建设计网站早期做的网站支持现在的网速吗
  • 优速网站建设工作室wordpress如何改页面模板
  • 医疗保健 网站 备案电子商务网站开发的形式有
  • 如何在阿里云建设网站网站推广的技能
  • 网站开发思维导图优秀网站设计赏析怎么写
  • 网站建设专家证书做网站的人会留下啥漏洞吗
  • 行业前10的网站建设网页设计模板html代码字体大小