网站页面设计费用/百度网站安全检测

网站页面设计费用,百度网站安全检测,注册网站引流,公司想做一个网站首页怎么做代码随想录算法训练 —day64 文章目录 代码随想录算法训练前言一、53. 117. 软件构建—拓扑排序二、47. 参加科学大会---dijkstra(朴素版)总结 前言 今天是算法营的第64天,希望自己能够坚持下来! 今天继续图论part!今…

代码随想录算法训练

—day64

文章目录

  • 代码随想录算法训练
  • 前言
  • 一、53. 117. 软件构建—拓扑排序
  • 二、47. 参加科学大会---dijkstra(朴素版)
  • 总结


前言

今天是算法营的第64天,希望自己能够坚持下来!
今天继续图论part!今日任务:
● 拓扑排序
●dijkstra(朴素版)


一、53. 117. 软件构建—拓扑排序

卡码网题目链接
文章讲解

给出一个 有向图,把这个有向图转成线性的排序 就叫拓扑排序。
适合应用在例如B依赖A,C依赖B,要先有A才能有B,先有B才能有C的依赖关系找出先后顺序的问题。

实现拓扑排序的算法有两种:卡恩算法(BFS)和DFS,一般来说我们只需要掌握 BFS (广度优先搜索)就可以了,清晰易懂。

思路:
在这里插入图片描述
找 入度为 0 的节点,只有入度为0,它才是出发节点。
步骤:
1.找到入度为0 的节点,加入结果集
2.该节点指向的节点入度-1

代码如下:

#include<iostream>
#include<vector>
#include<unordered_map>
#include<queue>
using namespace std;int main() {int n, m, s, t;cin >> n >> m;vector<int> inDegree(n, 0); //记录每个文件的入度unordered_map<int, vector<int>> umap; //记录文件的依赖 first指向多个second文件vector<int> result; //记录结果while (m--) {//s->t 先有s才能有tcin >> s >> t;inDegree[t]++;umap[s].push_back(t); //记录s指向哪些文件}//因为会有不只1个文件入度为0,用队列存放入度为0的文件queue<int>que;for (int i = 0; i < n; i++) {if (inDegree[i] == 0) que.push(i);        }//循环从队列中取出文件处理//1.将入度为0的文件加入结果集,2.删掉入度为0的文件while (!que.empty()) {int cur = que.front();que.pop();result.push_back(cur);vector<int> files = umap[cur]; //获取该文件指向的文件for (int j = 0; j < files.size(); j++) {inDegree[files[j]]--; //cur指向的文件入度-1if(inDegree[files[j]] == 0) que.push(files[j]); //新的入度为0的文件加入到队列}}//打印结果if (result.size() == n) {for (int i = 0; i < n - 1; i++) cout << result[i] << " ";cout << result[n - 1]; //最后不包含空格,所以分开打印} else {cout << -1 << endl;}return 0;
}

二、47. 参加科学大会—dijkstra(朴素版)

卡码网题目链接
文章讲解

dijkstra算法:在有权图(权值非负数)中求从起点到其他节点的最短路径算法。
需要注意两点:

  • dijkstra 算法可以同时求 起点到所有节点的最短路径
  • 权值不能为负数

dijkstra和prim算法思路很像,只是dijkstra是求最短路径,minDist数组 用来记录 每一个节点距离源点的最小距离;而prim里的minDist数组是记录每个节点到生成树的最小距离

dijkstra三部曲:
第一步,选源点到哪个节点近且该节点未被访问过
第二步,该最近节点被标记访问过
第三步,更新非访问节点到源点的距离(即更新minDist数组)

为了更好理解,数组下标从1开始,对应节点1,到达节点n对应下标n。
代码如下:

#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));while (m--) {cin >> s >> e >> v;grid[s][e]= v;}int start = 1;int end = n;vector<int>minDist(n+1, INT_MAX); //记录从原点到达每个节点的最短路径vector<bool>visited(n+1, false);minDist[start] = 0;//遍历所有节点for (int i = 1; i <= n; i++) { int minVal = INT_MAX;int cur = 1; //当前节点//遍历minDist,找出距离原点最近且未访问的节点for (int j = 1; j <= n; ++j) {if (!visited[j] && minDist[j] < minVal) {minVal = minDist[j];cur = j;}}//标记访问过的节点visited[cur] = true;//更新minDist,这里是判断原点到当前节点+当前节点到下一个节点的距离是否比原来的近for (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];}}}if (minDist[end] == INT_MAX) cout << -1 << endl; //不能到达终点else cout << minDist[end] << endl; //到达终点最短路径return 0;
}

总结

  • 拓扑排序 :
    1.unordered_map<int, vector> umap,存放每个节点指向多个节点
    2.一个vectorinDegrees记录每个节点的入度
    3.遍历inDegrees,用队列queue存放入度为0的节点
    4.遍历queue,将入度为0指向的节点入度-1,并将新的入度为0的节点加入到队列中。

  • dijkstra算法:
    1.vector<vector>grid存放节点间的权值, vectorminDist存放每个节点到源点的最小距离,vectorvisited记录已经被访问的节点
    2.遍历每个节点,遍历minDist,找到离源点最小距离且未访问过的节点
    3.标记成已访问的节点
    4.更新minDist数组

明天继续加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学术小助手智能体

学术小助手&#xff1a;开学季的学术领航员 文心智能体平台AgentBuilder | 想象即现实 文心智能体平台AgentBuilder&#xff0c;是百度推出的基于文心大模型的智能体平台&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;选取不同类型的开发方式&#xff0c;…

本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)

本文将将扩展上一篇文章完成的 langgraph 链&#xff0c;继续使用基于 langgraph 链 &#xff0c;对结构化数据库 SQlite 进行查询的方法。该系统建立以后&#xff0c;我们不需要掌握专业的 SQL 技能&#xff0c;可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善…

FASIONAD:自适应反馈的类人自动驾驶中快速和慢速思维融合系统

24年11月来自清华、早稻田大学、明尼苏达大学、多伦多大学、厦门大学马来西亚分校、电子科大&#xff08;成都&#xff09;、智平方科技和河南润泰数字科技的论文“FASIONAD : FAst and Slow FusION Thinking Systems for Human-Like Autonomous Driving with Adaptive Feedbac…

【免费】YOLO[笑容]目标检测全过程(yolo环境配置+labelimg数据集标注+目标检测训练测试)

一、yolo环境配置 这篇帖子是我试过的&#xff0c;非常全&#xff0c;很详细【cudaanacondapytorchyolo(ultralytics)】 yolo环境配置 二、labelimg数据集标注 可以参考下面的帖子&#xff0c;不过可能会出现闪退的问题&#xff0c;安装我的流程来吧 2.1 labelimg安装 label…

Linux系统软件管理

systemctl 控制软件启动和关闭 Linux系统很多软件支持使用systemctl命令控制&#xff1a;启动&#xff0c;停止&#xff0c;开启自启。 能被systemctl管理的软件&#xff0c;一般被称为&#xff1a;服务。 语法&#xff1a;systemctl start|stop|status|enable|disable 服务名…

CAN总线通信协议学习1——物理层

首先来看看CAN是怎么产生的&#xff1a;简单理解&#xff0c;CAN就是一种“拥有特别连接方式”的数据传输的总线&#xff0c;其有特定的一些规则。 &#xff08;注&#xff1a;资料及图片来源于知乎博主TOMOCAT。&#xff09; CAN总线的结构 查阅参考文献&#xff0c;OSI标准…

【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】

文章目录 前言电脑配置&#xff1a;安装的Deepseek版本&#xff1a;使用的UI框架&#xff1a;体验效果展示&#xff1a;本地部署体验总结 部署过程Ollama部署拉取模型运行模型Openwebui部署运行Ollama服务在Openwebui中配置ollama的服务 后话 前言 deepseek最近火的一塌糊涂&a…

给小白的oracle优化工具,了解一下

有时懒得分析或语句太长&#xff0c;可以尝试用oracle的dbms_sqldiag包进行sql优化&#xff0c; --How To Use DBMS_SQLDIAG To Diagnose Query Performance Issues (Doc ID 1386802.1) --诊断SQL 性能 SET ECHO ON SET LINESIZE 132 SET PAGESIZE 999 SET LONG 999999 SET SER…

YOLO11改进加入ResNet网络

文章目录 1.改进目的2.demo引入2.1代码2.2 结果展示2.3 BottleNeck详解 1.改进目的 原始YOLO11模型训练好以后&#xff0c;检测结果mAP结果很低&#xff0c;视频检测结果很差&#xff0c;于是想到改进网络&#xff0c;这里介绍改进主干网络。 2.demo引入 2.1代码 # File: 2…

【大数据】ClickHouse常见的错误及解决方式

ClickHouse 是一款高性能的列式数据库&#xff0c;但在使用过程中难免会遇到一些错误。本文将介绍一些 ClickHouse 常见的错误及其解决方式&#xff0c;帮助您更好地使用 ClickHouse。 1、错误&#xff1a;DB::Exception 错误信息 DB::Exception:Table engine Distributed d…

IP-----动态路由OSPF

这只是IP的其中一块内容&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一章内容为GRE和MGRE &#xff0c;可通过以下路径查看IP-------GRE和MGRE-CSDN博客,欢迎指正 注意&#xff01;&#xff01;&#xff01;本部分内容较多所以分成了两部分在下一章 5.动态路由OS…

数字内容体验未来趋势:交互升级与用户深耕

智能技术重塑内容交互 随着数字内容体验进入深度智能化阶段&#xff0c;AI驱动的内容生成与智能推荐算法正在重构用户与信息的交互范式。基于自然语言处理技术的内容创作工具&#xff0c;已实现从文本自动生成到多模态内容适配的跨越&#xff0c;企业能够以分钟级速度产出符合…

2025年2月21日优雅草内测分发站全新升级-测试运营-优雅草内测分发站新用户提供免费100下载点-2月28日正式运营并且提供私有化部署版本

2025年2月21日优雅草内测分发站全新升级-测试运营-优雅草内测分发站新用户提供免费100下载点-2月28日正式运营并且提供私有化部署版本 说明 优雅草内测分发站新用户提供免费100下载点&#xff0c;优雅草分运营站和demo测试站 运营站&#xff1a;www.youyacao.cn 提供免费100…

【洛谷贪心算法】P1106删数问题

这道题可以使用贪心算法来解决&#xff0c;核心思路是尽量让高位的数字尽可能小。当我们逐步删除数字时&#xff0c;会优先删除高位中相对较大的数字。具体做法是从左到右遍历数字序列&#xff0c;当发现当前数字比它后面的数字大时&#xff0c;就删除当前数字&#xff0c;直到…

开源PDF解析工具olmOCR

olmOCR 是由 Allen Institute for Artificial Intelligence (AI2) 的 AllenNLP 团队开发的一款开源工具&#xff0c;旨在将PDF文件和其他文档高效地转换为纯文本&#xff0c;同时保留自然的阅读顺序。它支持表格、公式、手写内容等。 olmOCR 经过学术论文、技术文档和其他文档…

基因型—环境两向表数据分析——品种生态区划分

参考资料&#xff1a;农作物品种试验数据管理与分析 用于品种生态区划分的GGE双标图有两种功能图&#xff1a;试点向量功能图和“谁赢在哪里”功能图。双标图的具体模型基于SD定标和h加权和试点中心化的数据。本例中籽粒产量的GGE双标图仅解释了G和GE总变异的53.6%&#xff0c;…

降维攻击!PCA与随机投影优化高维KNN

引言&#xff1a;高维数据的“冰山困境” 假设你正在处理一个电商平台的商品图片分类任务&#xff1a;每张图片被提取为1000维的特征向量&#xff0c;100万条数据的距离计算让KNN模型陷入“维度地狱”——计算耗时长达数小时&#xff0c;且内存占用超过10GB。 破局关键&#…

网络变压器的主要电性参数与测试方法(2)

Hqst盈盛&#xff08;华强盛&#xff09;电子导读&#xff1a;网络变压器的主要电性参数与测试方法&#xff08;2&#xff09;.. 今天我们继续来看看网络变压器的2个主要电性参数与它的测试方法&#xff1a; 1. 线圈间分布电容Cp:线圈间杂散静电容 测试条件:100KHz/0.1…

UniApp 中封装 HTTP 请求与 Token 管理(附Demo)

目录 1. 基本知识2. Demo3. 拓展 1. 基本知识 从实战代码中学习&#xff0c;上述实战代码来源&#xff1a;芋道源码/yudao-mall-uniapp 该代码中&#xff0c;通过自定义 request 函数对 HTTP 请求进行了统一管理&#xff0c;并且结合了 Token 认证机制 请求封装原理&#xff…

初阶数据结构习题【3】(1时间和空间复杂度)——203移除链表元素

1. 题目描述 力扣在线OJ——移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3…