▎前言 首先先来说一下RMB是什么,当然是人民币啦. 今天我们要学的这个东西不一般,叫做RMQ问题,那么它和RMB有什么关系呢?待小编细细说来. ▎前置技能:动态规划 不会的同志请戳这里迅速了解动态规划. ▎RMQ问题是什么 ☞『定义』 RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ问题是指求区间最值的问题.(copy自百度) 猜你也不想…
▎前言 一直都想学习这个东西,以为很难,结果发现也不过如此. 只要会些图论的基础就可以了. ▎强连通 ☞『定义』 既然叫强连通,那么一定具有很强的连通性. 强连通:就是指在一个有向图中,两个顶点可以互相到达,那么我们就称之为强连通: 强连通图:在一个有向图中,任意两个点都可以互相到达,那么我们称这个图是一个强连通图: 强连通分量:在一个有向图中(不一定是强连通图),一定有很多子图是强连通图,特别的,单独的一个点也是强连通图,而强连通分量则是分成的最大的强连通图. 以下三个红框中的都是强连通分量:…
废话不多说,直接上题: 1580:加分二叉树 时间限制: 1000 ms         内存限制: 524288 KB提交数: 121     通过数: 91 [题目描述] 原题来自:NOIP 2003 设一个 n 个节点的二叉树 tree 的中序遍历为 (1,2,3,⋯,n),其中数字 1,2,3,⋯,n 为节点编号.每个节点都有一个分数(均为正整数),记第 i 个节点的分数为 di ,tree 及它的每个子树都有一个加分,任一棵子树 subtree(也包含 tree 本身)的加分计算方法如…
▎引入 ☞『例题』 一道十分easy的题: 洛谷P1638 长度为n的序列,m种数 找一个最短区间,使得所有数出现一遍 n≤1e6 ,m≤2e3. ☞『分析』 这道题非常的简单,但是如果不会two-pointer的话就很费劲了,我们一定会首先想到动态规划,或者直接上暴力,时间复杂度绝对不能在这么大的数据规模下接受. 那么two-pointer是什么? 正如其名,有两个指针,注意:此指针非彼指针,可不是C++中的指针,所以不必担心,并不难,非常easy. 两个指针分别是头指针l和尾指针r,这样这道…
废话不多说,直接上题: 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…
▎写在前面 这是一种搜索算法,小编以前总是念成A乘寻路算法,没想到一直念错. 请大家都念成A星寻路算法,不要像小编一样丢人了. ▎A*寻路算法 ☞『引入』 相信大家都或多或少的玩过一些游戏吧,那么游戏中的这些AI角色是如何实现自动追踪玩家的呢? 难道是用普通的搜索吗?这种东西似乎有点太慢了,还没有过去就已经被玩家给打趴下了. 那么我们应该找到一种快速的办法,于是A*算法便有了用武之地. ☞『定义』 A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜…
小编最近装了个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…
废话不多说,直接上题:  P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色.例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标. 用尽量少的涂色次数达到目标. 输入格式 输入仅一行,包含一个长度为n的字符串,即涂色目标.字符串中的每个字符都…
废话不多说,直接上题: SP7579 YOKOF - Power Calculus 题意翻译 (略过没有营养的题干) 题目大意: 给出正整数n,若只能使用乘法或除法,输出使x经过运算(自己乘或除自己,以及乘或除运算过程中产生的中间结果)变成x^n的最少步数 输入格式: 若干行数据,每行一个正整数n,数据以单独成行的0结束 输出格式: 若干行数据,对应每行输入的n所需的步数 题目描述 Starting with x and repeatedly multiplying by x, we can c…
▎前言 这个东西和迭代器长的很像,但是比迭代器常见的多. 今天就来浅谈operator. ▎定义 operator是C#.C++和pascal的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名. 这是C++和pascal扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的). 在symbian os c++中,返回const TUint&给…
▎写在前面 FF算法传送门 之前我们已经学过了FF算法(全称Ford-Fulkerson算法)来找最大流,但是这种算法仍有诸多不对的地方. 其实这种算法存在着严重的效率的问题,请看下面的图: 以这个图为例,我们使用的搜索是无规则选边的,可能第一次会选这样的一条边. 那么我们继续增广. 第二次我们可能会选这样一条边: 发现什么了没有?边一直在减1,那么如果这样循环下去,的确有严重的效率问题. 但是我们明明可以通过S -> 1 -> T或S -> 2 -> T就可以到达,且不存在效率问…
▎前言 戳开这个链接看看,惊不惊喜,意不意外?传送门. 没想到我的博客竟然被别人据为己有了,还没办法投诉. 这年头写个博客太难了~~~ 之前小编写过了二分图的一些基础知识和匈牙利算法,今天来讲一讲km算法,若你不知道匈牙利算法,请先看下面的博客.(否则会体验极差) 传送门 ▎km算法 ☞『引入』 之前学习的匈牙利算法还记得吗?它处理的是无权二分图,长这个样子: //mspaint画出来的真粗糙 但是如果加入了权值呢?比如说是这个样子的: 现在,我们的问题变了,不再求最大匹配问题了,而是最优匹配问…
▎(一个没有用处的)前言 为什么这次题解特意写明题号呢?因为我发现了这样的事情: 所以不要混了,想看P1714题解的同志们可以圆润的滚开了. 好了,不说没用的了,切入正题: ▎题目 题目及测评链接:戳这里 ▎前置技能 贪心(点击查看).搜索(点击查看).剪枝(点击查看).二分(点击查看). ▎解析 这道题看起来令人不知所措,不知道的东西太多了,到底如何分配,一看就是要用到搜索的题,但怕是连搜索也很难写了. 我们按照顺序一点一点的想: 首先,我们不知道如何分配,只能像无头苍蝇一样到处乱撞,所以我们…
▎前言:函数 如果你已经上过初二的数学课了,那么你十有八九会被函数折磨到吐血,这是一种中考压轴题类的题目,往往分类讨论到你恶心.不过没学过也不打紧,现场讲解一下: ☞『数学中的函数』 一般地,如果在一个变化过程中有两个变量x和y,并且对于变量x的每一个值,变量y都有唯一的值与它对应,那么我们称y是x的函数,x是自变量.(copy自八上数学BS教材) 表示函数的方法:列表法.关系式法和图像法.(copy自八上数学BS教材) 可能有些枯燥,举个例子:小明从家出发,去旅游,速度是2m/s,如果他不歇下…
▎前言 这次要讲的HMP算法KMP算法很简单,是用于处理字符串的,之前一直以为很难,其实也不过如此(说白了就是优化一下暴力). ▎处理的问题 通常处理的问题是这样的:给定两个字符串s1和s2,其中s1是文本串,s2是匹配串,求s2在s1中出现的位置. 举个例子:(方便起见,下标从1开始)比如说s1是AABAAC,s2是BA,那么s2在s1的第3个位置处出现. ▎暴力求解 如何使用暴力求解这道题呢?我们只要分别暴力遍历两个字符串,然后分别比对当前字符,如果相等就继续比下去,如果不相等,那么s1回溯…
▎前言 小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义. 我们将要学到的东西: 复数 暴力多项式乘法 DFT 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式,如果你已经会了下面的内容就无需学了,否则请进入传送门. 环和域 多项式 卷积 多项式乘法 多项式点值表示 多项式的根 单位根 ▎复数 ☞『引入』 其实小编早就应该讲复数了,但是上次忘了讲,那么这次一定要补上,好了,切入正题: 如果你信誓旦旦的在初中卷子上不判断根号下(√)的数是否是负数,那么你极有可…
▎前言 看到这个题目,你一定会很好奇,为什么学打NOIP的要学习python?其实python对我们是很有用的! NOIP虽然不支持使用python提交代码,但是在NOILinux上天生自带python.python是一门比C++高级的语言,唯一的缺点就是慢!但是我们不用python来写代码,而是利用它自身打包好的函数实现一些C++要好多代码才能做到的事情. 比如说打表.对拍.计算等等,也可以用来辅助你写代码,那么废话不多说,直接带你快速上手python! ▎计算器 ☞『表达式』 在python…
▎前言 小编昨天闲的不行,就装了一个linux系统,linux的发行版很多,小编认为ubuntu很好用,于是就在使用ubuntu. 没错,我现在就在使用ubuntu来写博客. 刚才还装了一个QQ,不过不知道能不能用. 相信很多人都不愿意用linux系统,但是因为NOIP可能不再支持windows系统了,所以我们必须学会一些linux的基础操作. 小编为了练习,没有使用虚拟机,直接装成了电脑的系统,最开始肯定有很多不顺手的地方,所以特地教你如何使用linux. ▎比赛篇 如果你只想用于打比赛,那么…
废话不多说,直接看一张图: 没错,这是QQ,但是这有什么稀奇的?但是在Linux上使用QQ就很稀奇了. 众所周知,腾讯早就已经对Linux下的QQ和微信停止了服务,即便是网页版也不能用,通信这一直是小编装了Linux以来最苦恼的事情. 好了,切入正题,如何配置Linux下的QQ呢? 我们到这个网站上(传送门)下载zip包,然后解压到本地文件夹,然后在文件夹中打开终端,输入sudo sh ./install.sh即可安装. 下面是QQ的版本下载网址: TIM:http://mirrors.aliy…
<Web 前端开发精华文章推荐>2013年第七期(总第十九期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 CSS3 技术应用,推荐优秀的 网页设计 案例,共享精美的设计素材和优秀的 Web 开发工具,希望这些精心整理的前端技术文章能够帮助到您. HTML5 特别推荐:14个支持响应式设计的流行前端开发框架 推荐25款很棒的 HTML5 开发框架和开发工具<上篇> Socket.IO – 基于 WebSo…
COS访谈第十八期:陈天奇 [COS编辑部按] 受访者:陈天奇      采访者:何通   编辑:王小宁 简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习.他曾获得KDD CUP 2012 Track 1第一名,并开发了SVDFeature,XGBoost,cxxnet等著名机器学习工具,是Distributed (Deep) Machine Learning Common的发起人之一. 何:你的本科在上海交大的ACM班就读,是怎么开始做机器学习研究的呢? 陈:我们当时的培养计划…
  设计模式 ( 十九 ) 模板方法模式Template method(类行为型) 1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序.但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关.例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作人员进行评分.取号取号排队和对银行工作人员进行评分业务逻辑是一样的.但是办理具体业务是个不相同的,具体业务可能取款…
  解释器模式(Interpreter)   考虑上图中计算器的例子 设计可以用于计算加减运算(简单起见,省略乘除),你会怎么做?    你可能会定义一个工具类,工具类中有N多静态方法 比如定义了两个方法用于计算a+b 和 a+b-c public static int add(int a,int b){ return a+b; } public static int add(int a,int b,int c){ return a+b-c; } 但是很明显,如果形式有限,那么可以针对对应的形式…
作者:马健邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程十九:用JpegQuality看JPG文件的压缩参数 事先声明: 严格说来这篇教程是讲JpegQuality的,其实与CEP本身关系不大,但因为我自己经常从CEP启动JpegQuality查看JPG压缩参数, 我觉得其他人可能也有类似的需求,所以就在CEP系列教程里加了这么一篇,并不是有意给JpegQuality打广告…
第十九章 类型信息 RTTI(RunTime Type Information,运行时类型信息)能够在程序运行时发现和使用类型信息. Java 主要有两种方式在运行时识别对象和类信息: "传统的" RTTI:假定我们在编译时已经知道了所有的类型: "反射"机制:允许我们在运行时发现和使用类的信息. Class 对象 类是程序的一部分,每个类都有一个 Class 对象.换言之,每当我们编写并且编译了一个新类,就会产生一个 Class 对象(更恰当的说,是被保存在一个同…
第十九个知识点:Shamir密钥交换场景 Shamir密钥交换场景是一个被Adi Shamir提出的算法.算法允许多方分割一个密码,例如一个密钥.当足够多的秘密结合起来,整个密钥就被计算出来了. 正式的说,如果我们有秘密\(S\)和\(n\)方,我们能把\(S\)划分成\(n\)方.然后把它们分发给不同的组织.通过这样发送的密钥有一个限定值\(k\),如果密钥\(S\)的\(k\)数量的部分被收集到,那么就可以计算出\(S\).如果\(k-1\)或者更少的密钥被收集,那么\(S\)将无法被计算.…
<Web 前端开发精华文章推荐>2014年第8期(总第29期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 和 CSS3 技术应用,推荐优秀的 网页设计 案例,共享精美的设计素材和优秀的 Web 开发工具,希望这些精心整理的前端技术文章能够帮助到您. JavaScript [入门必备]最佳的 Node.js 学习教程和资料书籍 Fort.js – 时尚.现代的表单填写进度提示效果 ScrollMe – 在网页中加…
Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. Requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. impor…
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十九课:粒子系统 粒子系统: 你是否希望创建爆炸,喷泉,流星之类的效果.这一课将告诉你如何创建一个简单的例子系统,并用它来创建一种喷射的效果. 欢迎来到第十九课.你已经学习了很多知识,并且现在想自己来实践.我将在这讲解一个新命令.…