background picture of the home page

Hi,Friend

Hi!

抽象工厂模式

一. 定义 提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 抽象工厂模式是工厂方法模式的泛华版,工厂方法模式是一种特殊的抽象工厂模式。在工厂方法模式中每个具体工厂只能生成一种具体产品,而在抽象工厂方法模式中,一个工厂可以生产多个具体产品。 产品等级结构:即产品的继承结构,如一个

thumbnail of the cover of the post

工厂方法模式

一. 定义 引入抽象工厂类,具体产品的创建过程封装在抽象工厂的子类,通过工厂子类来确定实例化哪个具体产品类,增加新产品类时只需增加相应的具体工厂类。(一个产品等级结构) 二. 模式结构 1. Product(抽象产品) 产品接口 2. ConcreteProduct(具体产品) 实现抽象产品,具体的

thumbnail of the cover of the post

简单工厂模式

一. 定义 简单工厂模式又称静态工厂方法模式,在简单工厂模式中可以根据传入参数的不同返回不同的实例,而不需要知道具体类的类名。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。(一个产品等级结构) 二. 模式结构 1. Factory(工厂角色) 即工厂类,负责实现创

thumbnail of the cover of the post

设计模式

参考书目: 《设计模式》第二版:清华大学出版社:刘伟 编著 一. UML 1. 类图 类名:类的名字, 是一个字符串。 属性:指类的性质,即类的成员变量。形式:可见性 名称:类型 = 默认值public:+, private:-, protected:# 类的操作:及函数。形式:可见性 名称(参数列

thumbnail of the cover of the post

KMP字符串

一. AcWing831_KMP字符串 二. 理论 1. kmp原理 2. 循环节 KMP算法中最重要的就是next数组,next[i]表示是字符串中所有以 i 为结尾的非前缀子串中与前缀能匹配的长度的最大值。可能有点绕,缕一缕吧,这就是next[ ]数组的定义而已。 我们求最小循环节也是利用nex

thumbnail of the cover of the post

教主的魔法

一. 洛谷P2801_教主的魔法 二. 思路 若每个块内有序, 我们可以利用二分,logn算出这个块对答案的贡献 所以对每个块, 多维护一个s数组,里面是当前块内的所有值的有序数组 对于修改操作,不完整的块直接暴力判断,然后排序对s数组,根号n*logn 完整的块直接累加懒标记, 显然整块加并不会改

thumbnail of the cover of the post

块状数组

一个简单的整数问题2_理论 教主的魔法_区间修改+求区间>=x数的个数

thumbnail of the cover of the post

一个简单的整数问题2

一. AcWing243_一个简单的整数问题2 二. 理论 三. 代码 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #includ

thumbnail of the cover of the post

单调栈

一. AcWing830_单调栈 二. 理论 每次将当前元素和栈顶比较, 若栈顶元素>=当前数,则栈顶永远不可能是答案,出栈 直到栈顶元素<当前数,将当前数入栈 每次栈顶就是当前数嘴边小于他的数最近的 三. 代码 #include<iostream> #include&

thumbnail of the cover of the post