摘要:
我复习的时候,突然发现没写过hash算法,惊讶!!!赶紧补一下。 把字符串看成base进制的数。Hash值比较就是为了判断是否有相同的字符串。(base是自己定义的大于26的质数,个人认为大一点比较好) 下面是代码 这是一个简单的一维hash,假如有冲突的话可以用二维哈希来处理冲突(就是再找一个ba 阅读全文
摘要:
#include<bits/stdc++.h>using namespace std;const int maxn = 1e7 + 5;const int MAX = 10000000;int cnt;struct node{ node *next[26]; node *fail; int sum; 阅读全文
摘要:
在清北学堂的时候,老师讲了一下,没太搞懂,回来自己理解了一下 *******线段树*******线段树O(log(n))个区间覆盖L~R信息每层最多选两个区间mx区间最大值int n;int a[];int mx[];//o是当前节点编号,当前表示的区间范围//就是用数组实现树,mx代表o区间内最大 阅读全文
摘要:
现在正在上课,但我还是要同步更新博文。。。\滑稽 先讲一个离散化,就是把几个离的特别远的数在不影响结果的情况下,变成相近的数。倒是没什么影响,但应用在数组下标的话可以节约空间。(貌似和hash有点像) 直接拍代码 前缀和是个好东西,可以方便的操作。(每次加前一个,找区间时整体相减) 来一个矩阵前缀和 阅读全文
摘要:
定义和简单性质 欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的. 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1). 欧拉函数的一些性质: 1.对于素数p, φ(p)=p-1,对于对两个素数p,q φ(pq)=p 阅读全文
摘要:
gcd就是求a和b最大公约数,一般方法就是递推。不多说,上代码。 一.迭代法 二.递归法 但exgcd是个什么玩意??? 百度了一下,百科这么讲的: 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然 存在整数对 x,y ,使得 gcd(a,b)=ax+by。 好 阅读全文
摘要:
trie树,又名单词查找树。集训里有,就提前学了一下,不多说,直接贴代码。(但我感觉和普通树没什么区别。。。) 阅读全文
摘要:
类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。 带参数的构造函数 默认的构造函数没有任何参数,但如果需要,构造函数也可以带有参数。这样在创 阅读全文
摘要:
定义 C++ 对象 类提供了对象的蓝图,所以基本上,对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。下面的语句声明了类 Box 的两个对象: 访问数据成员 类的对象的公共数据成员(public)可以使用直接成员访问运算符 (.) 来访问。同结构体,但private和protected 阅读全文
摘要:
原来看其他人的代码,发现有好多class之类的语句,当时没太注意。可后来,我觉得应该有学习新知识的必要了。 类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。这一点和struct差不多。 这里,public是关键字,确定了类成员的 阅读全文