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

算法训练营|图论第8天 拓扑排序 dijkstra

题目:

拓扑排序

题目链接:

117. 软件构建 (kamacoder.com)

代码:

#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
int main() {int n, m;cin >> n >> m;vector<int>inDegree(n, 0);unordered_map<int, vector<int>>myMap;vector<int>result;for (int i = 0; i < m; i++) {int s, t;cin >> s >> t;inDegree[t]++;myMap[s].push_back(t);}queue<int>que;for (int i = 0; i < n; i++) {if (inDegree[i] == 0) {que.push(i);}}while (!que.empty()) {int cur = que.front();que.pop();result.push_back(cur);vector<int>files = myMap[cur];if (files.size() != 0) {for (int i = 0; i < files.size(); i++) {inDegree[files[i]]--;if (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] << endl;}else {cout << -1 << endl;}
}

题目:

dijkstra

题目链接:

47. 参加科学大会(第六期模拟笔试) (kamacoder.com)

代码:

#include<bits/stdc++.h>
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<int>minDist(n + 1, INT_MAX);vector<bool>visited(n + 1, false);int start = 1;int end = n;minDist[start] = 0;for (int i = 1; i <= n; i++) {int minVal = INT_MAX;int cur = 1;for (int v = 1; v <= n; v++) {if (!visited[v] && minDist[v] < minVal) {cur = v;minVal = minDist[v];}visited[cur] = true;for (int v = 1; v <= n; v++) {if (!visited[v] && grid[cur][v] != INT_MAX && minDist[cur] + grid[cur][v] < minDist[v]) {minDist[v] = minDist[cur] + grid[cur][v];}}}}if (minDist[end] == INT_MAX) cout << -1 << endl;else {cout << minDist[end] << endl;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (二十六)Java 数据结构
  • 山东省行政执法证照片要求及图像处理方法
  • 暑期学习总结
  • Android 11添加系统服务,并封装jar包供第三方应用使用
  • Kafka【五】Buffer Cache (缓冲区缓存)、Page Cache (页缓存)和零拷贝技术
  • python与pytroch相关
  • linux 下一跳缓存,early demux(‌早期解复用)‌介绍
  • 探索PDF的奥秘:pdfrw库的神奇之旅
  • 32 配置多路由的静态路由
  • https和harbor仓库跟k8s
  • VsCode + Go + macOS 小白 demo运行
  • 浏览器自动化测试的利器:Cypress
  • AI大模型实战:pytorch安装
  • glsl着色器学习(七)
  • 从源码角度分析 Kotlin by lazy 的实现
  • 「面试题」如何实现一个圣杯布局?
  • Angular 响应式表单之下拉框
  • angular2 简述
  • CSS盒模型深入
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • echarts的各种常用效果展示
  • flask接收请求并推入栈
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Mocha测试初探
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • vue总结
  • 彻底搞懂浏览器Event-loop
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 简单易用的leetcode开发测试工具(npm)
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​ArcGIS Pro 如何批量删除字段
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (02)Unity使用在线AI大模型(调用Python)
  • (26)4.7 字符函数和字符串函数
  • (9)目标检测_SSD的原理
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (五)c52学习之旅-静态数码管
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)shell调试方法
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • *** 2003
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ***检测工具之RKHunter AIDE
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .bat批处理(六):替换字符串中匹配的子串
  • .Net 6.0--通用帮助类--FileHelper