自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C++回炉之_C++PrimerPlus_第十三章 类继承

类的成员初始化表 类的成员变量总是在构造函数执行前创建完毕 但有此成员变量只能在初始化时赋值 – 如const型常量 和 引用 使用初始化表可以使指定构造函数中的参数或常量作为成员的初始值 Point::Point(int i, int j): x(i), y(j) {} 初始化表只能用于构...

2018-04-02 14:21:36

阅读数 153

评论数 0

原创 C++回炉之_C++PrimerPlus_第十二章 类和动态内存分配

复制构造函数 如果没有定义复制构造函数 – C++会自动提供 原型 class_name(const class_name&); Point(const Point&); 功能 逐个复制非静态成员的值 – 浅复制 如果含有成员的类型也是类, 则使用此成员的复...

2018-03-31 09:47:00

阅读数 87

评论数 0

原创 C++回炉之_C++PrimerPlus_第十一章 使用类

运算符重载 运算符重载是多态的一种形式 C++允许赋予运算符多种含义 运算符重载可使使用自定义类型看起来更像基本的数据类型 一个例子 使用 operator声明重载函数 调用 z = x + y; 相当于 z = x.operator+(y); #pragma once class ...

2018-03-25 19:52:03

阅读数 134

评论数 0

原创 C++回炉之_C++PrimerPlus_插曲 编程习惯

我的编程习惯 尽量使用下划线(_)而非大写字母 类 类首字母大写 类成员变量 – 加 m_ 前缀 静态成员变量 – 加 s_ 前缀 类成员函数 公有函数 – 不加任何前缀 私有函数 – 加 pri_ 前缀 保护函数 – 加 pro_ 前缀 静态函数 – 加 sta_ 前缀 声明顺序 先声...

2018-03-23 17:30:53

阅读数 71

评论数 0

原创 C++回炉之_C++PrimerPlus_第十章 对象和类

OOP的特性 抽象 封装 和 数据隐藏 多态 继承 代码可重用 类 将抽象转换为用户定义类型的C++工具 数据表示 + 操纵数据的方法 组成 类声明 – 蓝图 以数据成员的方式描述数据部分 以成员函数(方法)的方式描述公有接口 接口 – 供用户使用以操纵数据的共享框架 类定义...

2018-03-19 15:16:33

阅读数 147

评论数 0

原创 C++回炉之_C++PrimerPlus_第九章 内存模型名称空间

头文件 包含内容 使用#define或const定义的符号常量 函数原型 结构体声明 类声明 模板声明 内联函数 头文件的作用 对包含头文件的源代码文件(.cpp)进行单独编译时,预处理器将其与源文件合并 从而创建临时文件(.cpp) 使用 系统头文件用#include <...

2018-03-17 10:41:21

阅读数 153

评论数 1

原创 C++回炉之_C++PrimerPlus_第八章 函数探幽

内联函数 内联函数的编译代码与其他的程序代码“内联”到一块了 即编译器使用相应的函数代码来替代函数调用,从而不需要像函数调用那样跳来跳去 内联函数的运行速度比常规函数快,但需要更多的内存 在处理函数调用机制所占时间比执行函数代码的时间还长时,使用内联可节约大量的时间 即对代码执行很短,但调...

2018-03-14 15:03:15

阅读数 154

评论数 2

原创 C++回炉之_C++PrimerPlus_第七章 函数 -- C++的编程模块(二)

函数和二维数组 使用二维数组作为参数, 必须指定第二维的维数 – 元素的类型 表示arr为一个数组名,而数组的每一个元素也是一个数组, 由2个int组成 即arr的类型是指向由2个int组成的数组的指向 其中的括号必不可少,因为 int *arr[2]表示由2个指向int的指针组成的数组 –...

2018-03-11 22:33:51

阅读数 97

评论数 0

原创 C++回炉之_C++PrimerPlus_第七章 函数 -- C++的编程模块(一)

函数定义及声明 type_name function_name (parament_list) { // 返回值类型 函数名 参数列表 statements; return value; // value的类型为 typ...

2018-03-11 11:11:23

阅读数 114

评论数 0

原创 C++回炉之_C++PrimerPlus_第六章 分支语句和逻辑运算符

if语句 if(test) statement; if(a > b) cout << a << endl; if(test) { statement_1; } else { statement_2...

2018-03-08 18:08:25

阅读数 86

评论数 2

原创 C++回炉之_C++PrimerPlus_第五章 循环和关系表达式

for循环 for(init; test; update) { // 初始化; 测试条件; 更新(步长) statement; } for(int i = 0; i < 10; ++i) { cout << ...

2018-03-07 14:07:08

阅读数 72

评论数 0

原创 C++回炉之_C++PrimerPlus_第四章 复合类型(二)

指针 声明和初始化 int a = 5; int* p = &a; // & 取地址 使用 cout << *p << endl; // * 取值 指针的危险 空指针 没...

2018-03-05 22:39:30

阅读数 100

评论数 0

原创 C++回炉之_C++PrimerPlus_第四章 复合类型(一)

数组 数组的声明 int a[100]; typename array_name[array_size]; array_size 不能是变量 可通过索引(下标)对数组元素进行访问 – 下标范围[0, array_size) a[3] = 100; 数组的初始化 int a[4] = { ...

2018-03-04 22:46:45

阅读数 112

评论数 0

原创 C++回炉之_C++PrimerPlus_第三章 处理数据

变量命名 只能使用 字符字母 数字 下划线(_) 第一个字符不能为数字 不能将C++关键字作为名称 区分大小写 以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用 以一个下划线打头的名称被保留给实现,用作全局标识符 对名称长度无限制, 但C99的限制是63个字符 ...

2018-03-04 17:24:10

阅读数 118

评论数 0

原创 C++回炉之_C++PrimerPlus_第二章 开始学习C++

第一滴血 // hello.cpp /* This is my first code */ #include <iostream> using namespace std; int main() { cout << ...

2018-03-04 00:15:03

阅读数 74

评论数 0

原创 C++回炉之_C++PrimerPlus_第一章 预备知识

C ++ 其人 诞生 – 20世纪80年代 Bjarne Stroustrup 贝尔实验室 发展 – C++98 C++11 性格 – OOP(面向对象) Generic(泛型编程) 后面会展开讲 程序创建的技巧 使用IDE创建源代码 常用IDE VS(工程党推荐) cod...

2018-03-03 23:38:39

阅读数 87

评论数 0

原创 50行头文件+宏:acm专用 -- 初级版

//#include <bits/stdc++.h> #include <algorithm> #include <iostream> #include <sstream> //stringstream #include <ioman...

2017-09-27 01:02:37

阅读数 252

评论数 0

原创 单例模式:Singleton Pattern

定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点 适用条件 当系统需要某个类只能有一个实例时适用 大致有六种写法,每一种写法各有特点: 懒汉 – 线程不安全 懒汉 – 线程安全 懒汉 – 线程安全 – 双检锁(DCL) 懒汉 – 线程安全 – 静态内部类 饿汉 – 线...

2017-09-22 09:12:08

阅读数 118

评论数 0

原创 十进制小数:循环节等问题

小数化为分数 可以化为分数形式的小数有两类:一类是有限小数,一类是无限循环小数。  对于有限小数,我们只要将小数点移到最右,然后除以相应的10的几次方, 最后再约分即可。例如0.1234 就是1234/10000。  而对于无限循环小数,我们先从一个最简单的例子来分析 – 0.(1) , 即0...

2017-09-21 20:18:29

阅读数 308

评论数 0

原创 FFT NTT FWT: 傅立叶变换, 求卷积

原理贴(时间紧迫, 来不及自己整理了, %下大佬) Ichimei FFT算法学习笔记 A神 多项式乘法运算初级版 FFT A神 多项式乘法运算终极版 NTT Picks 讲FWT 咸鱼 Fast Walsh-Hadamard Transform (快速沃尔什变换) 模...

2017-09-12 00:58:59

阅读数 356

评论数 0

原创 a^b === c (mod p)知二求一: p已知

知a b求c 求x满足ab≡x(modp)a^b \equiv x \pmod p, 即求x=abmodpx = a^b \mod p 快速幂。。。LL pow_mod(LL a, LL b, LL p) { LL r = 1; a %= p; while(b) { ...

2017-08-24 13:03:24

阅读数 2197

评论数 0

原创 Baby Step Giant Step(好奇怪的名字)及其扩展: 求离散对数

定义 关于离散对数,请移步至此 =&gt; 离散对数:这个好难。。。 Baby Step Giant Step 中文名叫”大步小步算法”,用来求解如下同余方程x的最小正整数解: ax≡b(modp)其中0&lt;=x&lt;pax≡b(modp)其中0&...

2017-08-21 17:40:21

阅读数 1376

评论数 1

原创 离散对数:这个好难

定义 设g是m的一个原根,对于满足(k, m) = 1 的k, k关于g的离散对数(mod m)定义为一整数t,使gt≡k(modm)g^t \equiv k \pmod m 且t为一个最小剩余(modϕ(m))\pmod {\phi(m)}。 记作indgkind_gk。    ...

2017-08-17 23:49:39

阅读数 3135

评论数 0

原创 阶 和 原根

阶定义 设m > 1 且 (a, m) = 1, 则使得at≡1(modm)a^t \equiv 1 \pmod m 成立的最小的正整数t称为a对模m的阶, 记为δm(a)\delta_m(a)。 定理 定理1 若m>1且(a, m) = 1, 且an≡1(modm)a^...

2017-08-17 21:19:27

阅读数 3794

评论数 4

原创 欧拉定理 和 欧拉函数

欧拉定理定义 设m >= 2, (a, m) = 1。 若ϕ(m)\phi (m)表示小于m且与m互素的正整数的个数,则有aϕ(m)≡1(modm)a^{\phi(m)} \equiv 1 \pmod m //m不一定为素数 //若m为素数,则ϕ(m)=m−1\phi(m) ...

2017-08-17 15:51:59

阅读数 250

评论数 0

原创 二次同余式(草稿)

原理求解方法实现/*==================================================*\ | 二次同余式 x^2 === a (mod p) 的解 -- 最多两个 | p为奇素数 且 (a, p) = 1 \*==========================...

2017-08-17 09:52:49

阅读数 236

评论数 0

原创 威尔逊定理:素数的充要条件

定义 p为素数的充要条件为(p−1)!≡−1≡p−1(modp)(p-1)! \equiv -1 \equiv p-1 \pmod p 也可以说p|(p−1)!+1p\quad|\quad{ (p-1)!+1 } 证明 百度百科的证明特别简明易懂 => 点此跳转 应用 可以将一...

2017-08-16 19:56:10

阅读数 352

评论数 0

原创 费马小定理 : 求逆元 降幂

定义 若p为素数, (a, p) = 1, 则ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p 证明 引理1  若(a, m) = 1, 则a,2a,3a,...,(m−1)aa, 2a, 3a, ..., (m-1)a 的最小剩余(mod m) 按某种次序排...

2017-08-16 15:48:20

阅读数 401

评论数 0

原创 乘法逆元: 扩展欧几里德 费马小定理 递推 带余数同余式的一般解法

定义 若 a∗x≡1(modp),(a,p)=1a*x \equiv 1 \pmod p, \quad(a, p) = 1 则称x为a的乘法逆元(mod p)。 //其中(a, b) 表示a和b的最大公约数。 有解条件正如上面所言,当且仅当a和p互素时,a才有关于p的乘法逆元...

2017-08-15 17:34:05

阅读数 623

评论数 0

原创 中国剩余定理(CRT):求解模线性方程组

中国剩余定理CRT 平生写过的最浮夸的博客。。

2017-08-09 21:04:40

阅读数 666

评论数 0

原创 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈

bulabula

2017-08-06 23:50:28

阅读数 253

评论数 0

原创 单调队列 和 单调栈

单调队列定义 有一个队列(双端队列), 队列中的元素满足下面四种状态的任何一种都为单调队列: 单调递增 (如 1 2 3 5 9) 单调不减 (如 1 2 3 3 5) 单调递减 (如 9 5 3 2 1) 单调不增 (如 5 3 3 2 1) 性质 (以单增...

2017-08-06 23:42:49

阅读数 346

评论数 0

原创 HDU - 1506 Largest Rectangle in a Histogram: 单调栈入门题

题目点此跳转思路 题目意思是有一个由许多矩形组成的一个图形(下底对齐), 求这个图形里能找到的最大矩形的面积, 输入的是各个矩形的高度。 例如下图 很显然,这一题就是要求对于每一个矩形而言,它往左或右最多的比他高的矩形的个数, 也就是说,对于输入的那个数组,我们只要求出每一个元素能往左右延伸到什么...

2017-08-06 22:14:25

阅读数 180

评论数 0

原创 POJ - 3017 Cut the Sequence : 单调队列优化dp

题目点此跳转思路 题目意思是给你一个数组, 现在让你将整个数组划分为几个子区间,并且要保证每个子区间的元素和不大于M, 求 每个子区间的最大值 的和 的最小值。 这是一道dp题, 单调队列的一个很大的应用就是可以优化某一类dp。  我们先将它当作一个纯dp题去写状态转移方程,之后再考虑使用单调队...

2017-08-04 15:03:45

阅读数 220

评论数 1

原创 HDU - 3530 Subsequence : 单调队列

题目点此跳转思路 题目意思是给你一个数组, 求一个最长的子区间的长度,此子区间要满足一个条件:在此区间内的最大值与最小值的差要在[m, k]范围内。 使用两个单调队列分别维护区间的最大值和最小值。  注意队首元素出队的条件: 当最大值的队首减最小值的队首不满足题目要求时,要将两者下标小的出队, ...

2017-08-04 10:55:49

阅读数 115

评论数 0

原创 HDU - 3415 Max Sum of Max-K-sub-sequence : 单调队列

题目点此跳转思路 题目意思是给你一全环形的数组(头尾相接), 求所有长度不大于k的区间中 元素和 最大 的的区间 及 最大的元素和。 区间的和可以使用前缀和相减求出,设sum[i]为从0到i的前缀和, 区间[i, j]的和即为sum[j] - sum[i-1]; 那么对于每一个区间尾j,我们只要求...

2017-08-04 10:44:44

阅读数 163

评论数 0

原创 POJ - 2823 Sliding Window: 滑动窗口 单调队列

题目点此跳转思路 题目意思是给你一个数组,让你分别求出所有的区间长度为k的区间的最小值和最大值。 Window position Minimum value Maximum value [1 3 -1] -3 5 3 6 7 -1 3 1 [3 -1 -3...

2017-08-04 10:14:00

阅读数 324

评论数 0

原创 UVA - 1608 Non-boring sequences : 分治

题目点此跳转思路 题目意思是如果一个序列的任意连续子序列中至少有一个只出现一次的元素,则称这个序列是不无聊(non-boring)的。输入一个n(n≤200000)个元素的序列A(各个元素均为10 9 以内的非负整数),判断它是不是不无聊的。 分治法  在整个A[1,, n]里找到一个只出现一次...

2017-08-03 20:15:30

阅读数 168

评论数 0

原创 UVA - 12627 Erratic Expansion : 递归

题目点此跳转思路 题目意思是(书上原话)一开始有一个红气球。每小时后,一个红气球会变成3个红气球和一个蓝气球,一个蓝气球会变成4个蓝气球,如图所示分别是经过0, 1, 2, 3小时后的情况。经过k小时后,第A~B行一共有多少个红气球?例如,k=3,A=3,B=7,答案为14。 需要设出如下变量:...

2017-08-03 20:05:05

阅读数 114

评论数 0

原创 UVA - 11572 Unique Snowflakes(唯一的雪花) : 滑动窗口

题目点此跳转思路 题目意思是输入一个长度为n(n≤106)的序列A,找到一个尽量长的连续子序列AL~ARA_L~A_R ,使得该序列中没有相同的元素。 首先定义L和R表示要找的结果的左右端点,一开始L = R = 0;  然后我们不断地增加R,直到不能增加了为止,不能增加是因为再增加的话就有相...

2017-08-01 17:33:57

阅读数 217

评论数 0

提示
确定要删除当前文章?
取消 删除