导论
Apro1066
其他我都不想聆听 唯有我的声响除外
展开
-
贪心导论
一、什么是贪心在算法与思想不断多样化的 OI 世界里,有一样东西。它既是一种思想,一种普及大众、简单快捷的思想;又是一种算法,一种几乎无所不能、高效率、经济实用的算法。它是 OI 新手们忠实崇拜的偶像,又是 OI 大牛们理想的最高境界。没错,这个东西,就是————贪心。常言道:“贪得无厌。”然而,面临多元化的 OI,我们不得不选择贪心。为什么?因为贪心是紧随时代潮流的。曾经有一位 OI 贪心大牛说...转载 2018-05-12 21:49:00 · 1912 阅读 · 0 评论 -
A.pro读算法--报刊(咕)
第1期(2018.05.29):A.pro读算法の1:贪心算法第2期(2018.06.16):A.pro读算法の2:高精度算法第3期(2018.07.24):A.pro读算法の3:二分查找及模板第4期(2018.08.01):A.pro读算法の4:搜索算法第5期(2018.08.05):A.pro读算法の5:模拟算法第6期(2018.08.08):A.pro读算法の6:快速搞定...原创 2018-10-08 23:45:51 · 343 阅读 · 3 评论 -
A.pro读算法の9:“树”世界巡行
本文章不算难,不写引言和目录了。(~ .~)本文章由啊哈算法改编而成。这是啥?是我们在算法8里面了解的图(Gragh)吗?不对,它应该是一棵树(Tree)。你可能会说,哪里像树了?我来把它变换一下。 是不是很像一棵倒挂的树,也就是说它是根朝上,而叶子朝下的。你可能要问了,这玩意和图有什么区别吗,不就是无向图吗。其实不然,还是有差异的。树,就是不含回路的连通无向图。例如:...原创 2018-10-08 22:59:58 · 198 阅读 · 0 评论 -
A.pro读算法の10:最快时间入门动态规划
动态规划(Dynamic Programming,DP)是一种非常精妙的算法思想,它没有固定的写法、及其灵活,常常需要具体问题具体分析。动态规划将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题的最优解。需要注意的是,动态规划会将每个求解过的子问题的解记录下来,这样当下一次碰到同样的子问题时,就可以直接使用之前记录的结果,而不是重复计算。这就是重叠子问题(Overlap Sub...原创 2018-10-13 22:13:51 · 299 阅读 · 0 评论 -
A.pro读算法の8:快速搞定图的遍历
与其他数据结构一样,图也需要进行遍历操作,来访问各个数据点,以及后续对顶点和边进行操作。相对于树来说,图的结构更为复杂。目录1.1 概述1.2 图的存储结构1.3 深度优先遍历[2018.10.01完工]1.4 广度优先遍历[2018.10.11完工]大部分灵感来与《啊哈算法》1.1 概述先介绍一下图。图(graph)是数据结构和算法学中最强大的框架之一(或许没...原创 2018-09-23 00:15:11 · 673 阅读 · 2 评论 -
图论
图(graph)是数据结构和算法学中最强大的框架之一(或许没有之一)。图几乎可以用来表现所有类型的结构或系统,从交通网络到通信网络,从下棋游戏到最优流程,从任务分配到人际交互网络,图都有广阔的用武之地。而要进入图论的世界,清晰、准确的基本概念是必须的前提和基础。下面对其最核心和最重要的概念作出说明。关于图论的概念异乎寻常的多,先掌握下面最核心最重要的,足够开展一些工作了,其它的再到实践中不断去...转载 2018-09-22 22:44:56 · 1062 阅读 · 0 评论 -
A.pro读算法の7:快速搞定bfs算法
bfs算法,即广度优先算法(Breadth First Search)。和dfs类似的,同样可以遍历一张图。它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。和dfs一样,这是一种蛮力的解决方案。比如,你的眼镜掉了,你趴在地上找。你会先伸手找离你最近的地方,如果没有,再向远处寻找...和深搜的区别是:同样是对四周进行扩展,只是bfs是所有能扩展的点进入队列,不像深搜,不到最...原创 2018-08-17 18:27:25 · 617 阅读 · 6 评论 -
A.pro读算法の6:快速搞定dfs算法
A.pro不喜欢说那么长的概念和定义,因为那实在是太烧脑了,像我这种蒟蒻看个5分钟就该滚回去睡觉了。那么,我们需要在最短的时间内搞定这个女装山脉(雾)dfs。dfs算法,即深度优先算法(Depth First Search)。理解深搜的重要关键点是在于解决“现在该怎么做”。至于“接下来该怎么做”和“现在该怎么做”是一样的。先举个例子。全排列问题题目描述输出自然数1到n所有不重复...原创 2018-08-08 21:58:49 · 2488 阅读 · 6 评论 -
大整数类模版
#include<string>#include<iostream>#include<iosfwd>#include<cmath>#include<cstring>#include<stdlib.h>#include<stdio.h>#include<cstring>#原创 2018-08-19 20:41:36 · 301 阅读 · 7 评论 -
STL之优先队列
说到队列,我们首先想到就是先进先出,后进后出;那么何为优先队列呢,在优先队列中,元素被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征。这种行为有点像“急诊病人插队”的原理。STL的优先队列也定义在<queue>里。用priority_queue<int> pque;来声明。这个qpue就是“越小的整数优先级越低的优先队列”。...原创 2018-08-18 23:32:09 · 764 阅读 · 0 评论 -
C++重载函数
定义同名的变量,程序会编译出错;定义同名的函数,会带来冲突的问题。C++语言中使用了名字重组的技术,通过函数的参数类型来识别函数,所谓重载函数就是指多个函数具有相同的函数标识名,而参数类型或参数个数不同。函数调用时,编译器以参数的类型以及个数来区分调用哪个函数。//程序---<使用重载函数>#include <stdio.h>#include <iostre...原创 2018-07-14 22:45:46 · 930 阅读 · 0 评论 -
C++语言变量的存储类别
1.1 概述存储类别是变量的属性之一。在我们定义一个变量时,其实是有前缀的,只是我们通常省略。C++语言有4中变量的存储类别,分别是auto变量、static变量、register变量、extern变量。不同的变量存储方式会使变量的生存期不同,生存期表示了变量存在的时间。生存期和变量作用域是从时间和空间这两个不同的角度来描述变量的特性。在介绍4种变量之前,我们需要搞清楚动态变量和静态变量是什么...原创 2018-07-14 22:29:21 · 2766 阅读 · 0 评论 -
C++语言预编译命令
1. 预编译命令 (#) 文件包含(include) #include<> 在指定目录下搜索库文件 #include" " 范围更大2. 宏 (#define)第一种: 无参宏定义 格式: #define 宏名 宏内容 功能: 用一个制定的标识符(宏名(大写))来代表一串字符(...转载 2018-07-23 14:56:40 · 801 阅读 · 0 评论 -
快速幂操作
1.1 概论快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为O(log₂N),与朴素的O(N)和一般求法的O(N*N)相比效率有了极大的提高。1.2 原理以下以求a的b次方来介绍 [1] 把b转换成二进制数。该二进制数第i位的权为 例如11的二进制是101111 = 2³×1 + 2²×0 + 2¹×1 + 2º×1因此,我们将a¹¹转化为算 ...原创 2018-07-17 12:28:57 · 459 阅读 · 0 评论 -
A.pro读算法の2:高精度算法
1.1 描述高精度算法,属于处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。对于非常庞大的数字无法在计算机中正常存储,于是,将这个数字拆开,拆成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字...原创 2018-06-16 00:13:58 · 838 阅读 · 0 评论 -
A.pro读算法の1:贪心算法
1.1描述贪心算法:在对问题求解时,总是做出在当前看来是最好的选择,也就是说,不从整体最优上加以考虑,所作出的仅是某种意义上的局部最优解。 贪心策略:在每个阶段,都作出一个按照某个评价函数最优的决策,这个评价函数最优称为贪心准则(类似于动态规划的状态转移方程)。 基本过程:在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出...原创 2018-05-29 23:02:24 · 299 阅读 · 0 评论 -
A.pro读算法の11:最短路径之Dijkstra算法
此文是献给OIer看的。讲的东西比较基础(其实我理解Dijkstra花了很长时间)。NOIP2018结束约有1个月了,但是我们仍要继续前进,为NOIP2019做准备。本节学习Dijkstra的算法思想和实现,以及优先队列和堆优化。线段树也可以做到优化,甚至可能还更快,但是我太弱了不会。。好了,本蒟蒻A.pro今天给大家带来的是----A.pro读算法の11:最短路径之Dijkstra算法。...原创 2018-12-11 13:29:56 · 563 阅读 · 0 评论