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

算法训练 | 图论Part8 | 117. 软件构建、47. 参加科学大会

目录

117. 软件构建

拓扑排序法

47. 参加科学大会

dijkstra法


117. 软件构建

  • 题目链接:117. 软件构建

  • 文章讲解:代码随想录

拓扑排序法
  • 代码一:拓扑排序

#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;}

47. 参加科学大会

  • 题目链接:47. 参加科学大会(第六期模拟笔试)

  • 文章讲解:代码随想录

dijkstra法
  • 代码一:dijkstra

#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int main() {int n, m, p1, p2, val;cin >> n >> m;vector<vector<int>> grid(n + 1, vector<int>(n + 1, INT_MAX));for(int i = 0; i < m; i++){cin >> p1 >> p2 >> val;grid[p1][p2] = val;}int start = 1;int end = n;// 存储从源点到每个节点的最短距离std::vector<int> minDist(n + 1, INT_MAX);// 记录顶点是否被访问过std::vector<bool> visited(n + 1, false);minDist[start] = 0;  // 起始点到自身的距离为0for (int i = 1; i <= n; i++) { // 遍历所有节点int minVal = INT_MAX;int cur = 1;// 1、选距离源点最近且未访问过的节点for (int v = 1; v <= n; ++v) {if (!visited[v] && minDist[v] < minVal) {minVal = minDist[v];cur = v;}}visited[cur] = true;  // 2、标记该节点已被访问// 3、第三步,更新非访问节点到源点的距离(即更新minDist数组)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; // 到达终点最短路径}

相关文章:

算法训练 | 图论Part8 | 117. 软件构建、47. 参加科学大会

目录 117. 软件构建 拓扑排序法 47. 参加科学大会 dijkstra法 117. 软件构建 题目链接&#xff1a;117. 软件构建 文章讲解&#xff1a;代码随想录 拓扑排序法 代码一&#xff1a;拓扑排序 #include <iostream> #include <vector> #include <queue> …...

编程从零基础到进阶(更新中)

题目描述 依旧是输入三个整数&#xff0c;要求按照占8个字符的宽度&#xff0c;并且靠左对齐输出 输入格式 一行三个整数&#xff0c;空格分开 输出格式 输出它们按格式输出的效果&#xff0c;占一行 样例输入 123456789 -1 10 样例输出 123456789-1 10 #include "stdio.…...

MySQL运维实战之ProxySQL(9.6)SQL黑名单

作者&#xff1a;俊达 利用mysql_query_rules表中的error_msg字段&#xff0c;可以实现SQL黑名单的功能。如果规则设置了error_msg&#xff0c;当SQL语句匹配这条规则时&#xff0c;proxysql会直接将error_msg的内容返回给客户端。 当遇到一些大查询严重影响数据库性能时&…...

深入了解MySQL中的innodb_lock_wait_timeout

引言 在数据库管理中&#xff0c;确保数据的一致性和完整性是至关重要的。MySQL的InnoDB存储引擎通过行级锁定机制来实现这一点。然而&#xff0c;当多个事务同时操作数据库时&#xff0c;可能会出现锁等待的情况。了解并合理配置innodb_lock_wait_timeout参数&#xff0c;对于…...

102.qt qml-最全Table交互之多列固定、行列拖拽、自定义委托、标题交互使用教程

自定义实现的Table控件&#xff0c;支持跨qt版本&#xff0c;兼容qt5,qt6&#xff01; 截图如下所示: 黑色风格如下所示&#xff1a; 视频演示入口&#xff1a;Qt QML QianWindowV2.5(新增曲线综合示例、QML最全Table交互示例、支持qt5/qt6)_哔哩哔哩_bilibili 1.示例页面入口…...

文章管理小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;作者管理&#xff0c;文章管理&#xff0c;文章分类管理&#xff0c;论坛&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;文章&#xff0c;论坛&#xff0c;我的 开发系统…...

Ubuntu22.04安装NIVIDIA显卡驱动总结

1.首先在安装驱动时需要判断系统有无GPU以及GPU的型号 可以参考这篇文章&#xff1a; https://blog.51cto.com/u_13171517/8814753#:~:textubuntu%20%E7%B3%BB%E7%BB%9F%20%E6%80%8E%E4%B9%88%E5%88%A4%E6%96%AD%E7%B3%BB%E7%BB%9F%E6%9C%89%E6%B2%A1%E6%9C%89GPU%201%20%E6%…...

Redis的配置优化、数据类型、消息队列

文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…...

数据结构之初始二叉树(2)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 二叉树的前置知识&#xff08;概念、性质、、遍历&#xff09; 通过上篇文章的学习&#xff0c;我们…...

如何预防最新的baxia变种勒索病毒感染您的计算机?

引言 在当今数字化时代&#xff0c;网络安全威胁层出不穷&#xff0c;其中勒索病毒已成为企业和个人面临的重大挑战之一。近期&#xff0c;.baxia勒索病毒以其高隐蔽性和破坏性引起了广泛关注。本文将详细介绍.baxia勒索病毒的特点、传播方式&#xff0c;并给出相应的应对策略…...

git列出提交记录的文件路径

一、如何列出某次提交记录中修改过/新增的文件&#xff1f; 方法1&#xff1a;使用 git diff-tree 命令来查看某个提交记录中修改过/新增的文件。具体来说&#xff0c;你可以使用以下命令&#xff1a; git diff-tree --no-commit-id --name-only -r <commit-hash>命令解…...

微信小程序密码 显示隐藏 真机兼容问题

之前使用type来控制&#xff0c;发现不行&#xff0c;修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…...

C# 中,使用 LINQ 示例 备忘

语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串&#xff0c;没有编译时类型检查或 IntelliSense 支持。 此外&#xff0c; … 对于编写查询的开发者来说&#xff0c;LINQ 最明显的“语言集成”部分就是查询表达式。 …...

GaussDB DWS 详解

文章目录 GaussDB DWS 详解一、简介二、DWS的分布式架构架构概述关键组件 三、分布式查询数据查询流程SQL执行的示例 批注&#xff1a;本文引鉴了Forlogen博主的一些内容&#xff0c;并加以补充&#xff0c;以供学习了解。 GaussDB DWS 详解 一、简介 DWS(Data Warehouse Ser…...

【256 Days】我的创作纪念日

目录 &#x1f33c;01 机缘 &#x1f33c;02 收获 &#x1f33c;03 日常 &#x1f33c;04 成就 &#x1f33c;05 憧憬 最近收到官方来信&#xff0c; 突然发现&#xff0c;不知不觉间&#xff0c;距离发布的第一篇博客已过256天&#xff0c;这期间我经历了春秋招、毕业答辩…...

3D云渲染工具对决:Maya与Blender的性能和功能深度比较

3D建模和动画制作已成为数字领域不可或缺的一环&#xff0c;无论是在影视特效的震撼场面&#xff0c;还是在游戏角色的生动表现&#xff0c;3D技术都扮演着至关重要的角色。而在这一领域&#xff0c;Maya和Blender这两款软件&#xff0c;以其强大的功能和广泛的应用&#xff0c…...

spring.factories详解

spring.factories 是 Spring Boot 中一个重要的配置文件&#xff0c;它用于实现自动配置类和框架的扩展机制。这个文件通常位于项目的 resources/META-INF 目录下&#xff0c;并且遵循 Java 的 .properties 文件格式。以下是对 spring.factories 的详细解释&#xff1a; 自动配…...

从Docker Hub 拉取镜像一直失败超时?这些解决方案帮你解决烦恼

设置国内源&#xff1a; 提示&#xff1a;常规方案&#xff08;作用不大&#xff09; 阿里云提供了镜像源&#xff1a;https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 登录后你会获得一个专属的地址 使用命令设置国内镜像源&#xff1a;通过vim /etc/docker/d…...

【pbootcms】新环境搭建环境安装时发生错误

【pbootcms】新环境搭建环境安装时发生错误 提示一下内容&#xff1a; 登录请求发生错误&#xff0c;您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试 2、检查系统会话文件存储目录是否具有写入权限; 3、检查服务器环境pathinfo及伪静态规则配置; 先按照…...

C语言之qsort函数

一、qsort 1.库函数qsort qsort是库函数&#xff0c;直接可以用来排序数据&#xff0c;底层使用的是快速排序。 qsort函数可以排序任意类型的数据。 2.头文件 #include<stdlib.h> 3.参数讲解 void*类型的指针是无具体类型的指针&#xff0c;这种类型的指针的不能直接解…...

如何无缝迁移HMCL配置?告别重复配置的4个关键策略

如何无缝迁移HMCL配置&#xff1f;告别重复配置的4个关键策略 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL 更换设备时&#xff0c;Minecraft玩家面临的最大挑…...

函数极限的概念和性质

种树最好的时机是十年前或者是现在&#xff0c;记住只要你开始学了就什么时候都不晚。本文参考张宇考研数学的学习笔记。1.领域的概念设 为数轴上的一个点&#xff0c;为 为正数&#xff0c;则称为的领域。由于领域是极限中的概念&#xff0c;不存在任何实际距离说法。其中去心…...

all-MiniLM-L6-v2效果展示:22.7MB小模型在语义相似度任务中的惊艳表现

all-MiniLM-L6-v2效果展示&#xff1a;22.7MB小模型在语义相似度任务中的惊艳表现 在自然语言处理领域&#xff0c;语义相似度计算是一个基础而重要的任务&#xff0c;它直接影响着搜索、推荐、问答等系统的效果。传统的大模型虽然效果出色&#xff0c;但庞大的体积和计算需求…...

初学者如何自学SEO优化

初学者如何自学SEO优化 在当今互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为了网站推广的核心手段。对于初学者来说&#xff0c;如何自学SEO优化可能看起来有些复杂&#xff0c;但只要掌握几个关键点&#xff0c;就能迅速上手。本文将带你深入了解如…...

3个颠覆性技巧:NVIDIA Profile Inspector如何释放显卡隐藏性能

3个颠覆性技巧&#xff1a;NVIDIA Profile Inspector如何释放显卡隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款专业的显卡参数配置工具&#xff0c;能够深度…...

HunyuanVideo-Foley使用技巧:如何用文字描述控制生成音效风格

HunyuanVideo-Foley使用技巧&#xff1a;如何用文字描述控制生成音效风格 1. 引言&#xff1a;文字描述如何影响音效生成 想象一下&#xff0c;你拍摄了一段海滩视频&#xff0c;但缺少合适的音效。传统方法需要手动寻找和编辑各种声音素材&#xff0c;耗时又费力。而Hunyuan…...

FlutterApp豆瓣电影模块:复杂列表与详情页性能优化全指南

FlutterApp豆瓣电影模块&#xff1a;复杂列表与详情页性能优化全指南 【免费下载链接】flutter_app &#x1f525;&#x1f525;&#x1f525;本项目包括各种基本控件使用&#xff08;Text、TextField、Icon、Image、Listview、Gridview、Picker、Stepper、Dialog、Slider、Row…...

从零开始:在VS2019中用C++/CLI实现WinForm拖拽式界面设计

从零开始&#xff1a;在VS2019中用C/CLI实现WinForm拖拽式界面设计 当开发者需要在C项目中快速构建图形用户界面时&#xff0c;WinForm提供了一种比传统Win32 API更高效的解决方案。本文将详细介绍如何在Visual Studio 2019环境下&#xff0c;利用C/CLI技术实现类似C#的拖拽式W…...

OpenClaw低成本方案:Qwen3-14B私有镜像替代OpenAI API实战

OpenClaw低成本方案&#xff1a;Qwen3-14B私有镜像替代OpenAI API实战 1. 为什么选择本地模型替代商用API 去年冬天&#xff0c;当我第一次用OpenClaw自动整理全年会议纪要时&#xff0c;看着账单里OpenAI API的消耗记录&#xff0c;手指悬在键盘上半天没敢点"重试"…...

WSL2多版本Ubuntu共存与切换实战指南

1. 为什么需要多版本Ubuntu共存&#xff1f; 很多开发者可能都遇到过这样的困境&#xff1a;项目A需要Ubuntu 20.04的环境&#xff0c;而项目B又要求使用Ubuntu 24.04的新特性。传统做法是在不同机器或虚拟机中分别部署&#xff0c;但这既浪费资源又增加管理难度。WSL2的出现完…...