算法
文章平均质量分 70
idiot5liev
研究生机械转码,从零开始学 C++。博客是个人学习的笔记与总结,有问题评论留言,一起进步。
展开
-
【C++】ios::sync_with_stdio(false) 与 cin.tie(nullptr) 加速 IO
目录&索引一、前言题目二、ios::sync_with_stdio(false)三、cin.tie(nullptr)四、小结一、前言前面遇到大数据量(cin、cout 数据量级达到 1e5、1e6 ),考虑因为 IO 性能报错 TLE 选择 scanf、printf 替代 cin、cout,故解决问题,却没有深入研究其中的原因。只知关键词——同步,虽本质相同但差之千里,故记录本文。针对上述场景,这两天开始打的 LC 的周赛发现不少选手用的下述代码:// 已做相关改进,包括 cin.tie(原创 2021-07-11 10:28:25 · 5773 阅读 · 6 评论 -
【图论】bellman-ford 算法 + spfa 算法(基于队列优化)单源最短路(code c++)
目录&索引算法原理bellman-ford算法与spfa算法两者关系spfa算法通俗介绍(对比于dijkstra算法)程序代码bellman-ford code c++spfa code c++结论算法原理bellman-ford算法与spfa算法两者关系spfa 算法是 bellman-ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。spfa 最坏情况下复杂度和朴素 bellman-ford 相同,为 O(nm)。spfa算法通俗介绍(对比于dijks原创 2021-03-04 22:44:27 · 354 阅读 · 1 评论 -
【图论】链式前向星 + dijkstra 算法 单源最短路(code c++)
目录&索引算法原理链式前向星dijkstra算法程序代码链式前向星 code c++dijkstra code c++结论算法原理链式前向星链式前向星可以理解为静态建立的邻接表,但比邻接表好写。记住,边的结构定义模拟链表。dijkstra算法Dijkstra 算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结原创 2021-03-04 08:55:16 · 1325 阅读 · 1 评论 -
【图论】邻接矩阵 + floyd 算法 多源最短路(code c++)
目录&索引算法原理程序代码code c++结论算法原理Floyd 算法是一个经典的动态规划算法,它又被称为插点法。该算法名称以创始人之一、1978 年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。Floyd 算法是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,算法目标是寻找从点 j 到点 k 的最短路径。从任意节点 j 到任意节点 k 的最短路径不外乎 2 种可能,1 是直接从 j 到 k,2 是从 j 经过若干个节点 i 到 k。所以,算法假设 Dis(原创 2021-03-04 08:30:47 · 573 阅读 · 2 评论 -
【数据结构与算法】扩展欧几里得算法详解
这个算法还是有点意思的,需要一些思考和理解。如何理解?为了介绍扩展欧几里得,我们先介绍一下裴蜀定理: 即如果a、b是整数,那么一定存在整数x、y使得ax+by=gcd(a,b)。换句话说,如果ax+by=m有解,那么m一定是gcd(a,b)的若干倍。(可以来判断一个这样的式子有没有解)有一个直接的应用就是 如果ax+by=1有解,那么gcd(a,b)=1;要求出这个最大公因数gcd(a,b),我们最容易原创 2020-10-26 16:33:02 · 358 阅读 · 2 评论