▎前言 一直都想学习这个东西,以为很难,结果发现也不过如此. 只要会些图论的基础就可以了. ▎强连通 ☞『定义』 既然叫强连通,那么一定具有很强的连通性. 强连通:就是指在一个有向图中,两个顶点可以互相到达,那么我们就称之为强连通: 强连通图:在一个有向图中,任意两个点都可以互相到达,那么我们称这个图是一个强连通图: 强连通分量:在一个有向图中(不一定是强连通图),一定有很多子图是强连通图,特别的,单独的一个点也是强连通图,而强连通分量则是分成的最大的强连通图. 以下三个红框中的都是强连通分量:…
▎写在前面 这是一种搜索算法,小编以前总是念成A乘寻路算法,没想到一直念错. 请大家都念成A星寻路算法,不要像小编一样丢人了. ▎A*寻路算法 ☞『引入』 相信大家都或多或少的玩过一些游戏吧,那么游戏中的这些AI角色是如何实现自动追踪玩家的呢? 难道是用普通的搜索吗?这种东西似乎有点太慢了,还没有过去就已经被玩家给打趴下了. 那么我们应该找到一种快速的办法,于是A*算法便有了用武之地. ☞『定义』 A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜…
▎前言 首先先来说一下RMB是什么,当然是人民币啦. 今天我们要学的这个东西不一般,叫做RMQ问题,那么它和RMB有什么关系呢?待小编细细说来. ▎前置技能:动态规划 不会的同志请戳这里迅速了解动态规划. ▎RMQ问题是什么 ☞『定义』 RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题.(copy自百度) 猜你也不想…
▎引入 ☞『例题』 一道十分easy的题: 洛谷P1638 长度为n的序列,m种数 找一个最短区间,使得所有数出现一遍 n≤1e6 ,m≤2e3. ☞『分析』 这道题非常的简单,但是如果不会two-pointer的话就很费劲了,我们一定会首先想到动态规划,或者直接上暴力,时间复杂度绝对不能在这么大的数据规模下接受. 那么two-pointer是什么? 正如其名,有两个指针,注意:此指针非彼指针,可不是C++中的指针,所以不必担心,并不难,非常easy. 两个指针分别是头指针l和尾指针r,这样这道…
▎前言:函数 如果你已经上过初二的数学课了,那么你十有八九会被函数折磨到吐血,这是一种中考压轴题类的题目,往往分类讨论到你恶心.不过没学过也不打紧,现场讲解一下: ☞『数学中的函数』 一般地,如果在一个变化过程中有两个变量x和y,并且对于变量x的每一个值,变量y都有唯一的值与它对应,那么我们称y是x的函数,x是自变量.(copy自八上数学BS教材) 表示函数的方法:列表法.关系式法和图像法.(copy自八上数学BS教材) 可能有些枯燥,举个例子:小明从家出发,去旅游,速度是2m/s,如果他不歇下…
废话不多说,直接上题: 1580:加分二叉树 时间限制: 1000 ms         内存限制: 524288 KB提交数: 121     通过数: 91 [题目描述] 原题来自:NOIP 2003 设一个 n 个节点的二叉树 tree 的中序遍历为 (1,2,3,⋯,n),其中数字 1,2,3,⋯,n 为节点编号.每个节点都有一个分数(均为正整数),记第 i 个节点的分数为 di ,tree 及它的每个子树都有一个加分,任一棵子树 subtree(也包含 tree 本身)的加分计算方法如…
▎前言 看到这个题目,你一定会很好奇,为什么学打NOIP的要学习python?其实python对我们是很有用的! NOIP虽然不支持使用python提交代码,但是在NOILinux上天生自带python.python是一门比C++高级的语言,唯一的缺点就是慢!但是我们不用python来写代码,而是利用它自身打包好的函数实现一些C++要好多代码才能做到的事情. 比如说打表.对拍.计算等等,也可以用来辅助你写代码,那么废话不多说,直接带你快速上手python! ▎计算器 ☞『表达式』 在python…
废话不多说,直接上题: 1585: [例 1]Amount of Degrees 时间限制: 1000 ms         内存限制: 524288 KB提交数: 130     通过数: 68 [题目描述] 原题来自:NEERC 2000 Central Subregional,题面详见 Ural 1057. 求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K 个互不相等的 B 的整数次幂之和.例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意: 1…
小编最近装了个Mac系统,因为小编已经有笔记本可以用linux了,所以就决定在台式机上装个双系统,结果一不小心把Mac装在C盘上了,哎,说多了都是泪啊. 其实用了Mac之后才发现windows特别好用,一用开Mac瞬间就感觉变了. 唉,原来菜单是在下面的,但是现在在上面. 唉,原来退出.最小化是在右边的,现在在左边. 唉,原来我的电脑之类的在左边,现在都没有了,其他显示的东西全在右边. 唉,原来能用的快捷键都不能用了. 唉,滚轮成了反方向. 唉,------------ 废话不多说(感觉说的很多…
▎一些用的上的东西 小编太菜了,很多东西都不会证明(主要是三角函数还没有学啊~~~). 附上链接https://blog.csdn.net/enjoy_pascal/article/details/81478582 大家可以看看这个博主的证明. 所以小编就只提供讲解了. ▎前置知识 离散傅里叶变换,传送门. ▎FFT 在之前,一个多项式是长这个样子的: 现在我们拆一下,定义两个多项式: f1(x)=a0+a2x+a4x2+……+an-2xn/2-1 f2(x)=a1+a3x+a5x2+……+an…