摘要: what is 三分法 对于二分,相信你一定十分熟悉。就是在一个具有单调性序列上查找你所需要的数字。由于其单调性,你每一次在查找是就可以将规模缩小一半,大致就是: 1.假设这个数列单调递增 2.维护一个区间左端点$l$,区间右端点r和中间点$mid$ 3.如果$mid$比想要的值小,则左边肯定不可以 阅读全文
posted @ 2018-12-14 22:42 PigZhou 阅读(1322) 评论(0) 推荐(0) 编辑
摘要: NOIP每一次都会有学生应为各种原因丢分, 在此,我总结了一些常见的错误: 1.打表不删除 2.不开longlong 3.文件名打错 4.使用longlong,输出没有打lld 5.负数下标 6.变量重名 7.审题 8.数据规模看错导致数组开小越界 (或者实际所需空间大于题意上的空间) 9.变量,数 阅读全文
posted @ 2018-12-14 16:04 PigZhou 阅读(567) 评论(0) 推荐(1) 编辑
摘要: LIS的暴力算法 我们知道,LIS(最长上升子序列,最长下降子序列,最长不上升子序列,最长不下降子序列)如果按照最初得方法做,我们设置的状态f "i]表示i结尾的最长LIS的长度,在枚举每一个数的时候都要向前找一个数字,那么这种方法是O(n^2).([具体讲解看这里" ) 优化后的LIS 如果N≤7 阅读全文
posted @ 2018-12-14 15:54 PigZhou 阅读(480) 评论(1) 推荐(0) 编辑
摘要: 什么是链表 链表其实和数组一样,可以存储一串元素.但又与数组不同,那就是数组是以下标进行存储的,例如a "1],a[2],a[3]等,而链表则是根据许多数字的前后关系的数字进行存储的,其原理类似于图论中的[邻接表" ,所存储的序列并不是有序的,而是存储这个数的前面(next)和这个数的后面(pre) 阅读全文
posted @ 2018-12-14 15:52 PigZhou 阅读(2323) 评论(0) 推荐(0) 编辑
摘要: 栈是什么 栈就是一个先进先出的线性表,若能够更加方便地去理解栈,我们可以跟剧具体的图来进行理解. 相信这个图十分的生动形象,可以看出栈就像是一个桶,若每一个元素进栈的时候,便会存储在最底下,后来的会在上面;而如果需要取出元素,那么必须从最上面开始取,先放的便只能后来取,后放的便只能先取,因此栈的特点 阅读全文
posted @ 2018-12-14 15:51 PigZhou 阅读(1118) 评论(0) 推荐(0) 编辑
摘要: 什么是Hash Hash就像是一个桶排,那只不过是把各个元素的数值当做下标进行存储.其最常用的用途就是用来判重.但是,如何对字符串进行判重,不可能一个一个往前超,若n上万则显然不可行.我们可以选择进行Hash,将每一个字符串或者大数字进行一定的操作即可进行. 对大整数类型进行Hash 取模法 对于每 阅读全文
posted @ 2018-12-14 15:49 PigZhou 阅读(1308) 评论(0) 推荐(0) 编辑
摘要: 什么是队列 队列是一种先进先出,后进后出的线性表. 同栈相反,队列一头进,而另外一头出.我们同样可以通过画图来理解队列. 如何去实现或模拟队列的操作 我们可以用head和tail表示,head表示指向对头的指针,tail表示指向队尾的指针. 我们设q为模拟队列的数组,那么对于5个元素q={2,5,7 阅读全文
posted @ 2018-12-14 15:48 PigZhou 阅读(1738) 评论(0) 推荐(0) 编辑
摘要: 马拦过河卒 "原题传送门" 这一到题目也是比较基础的动态规划,也可以理解为是递推,主要是运用加法原理,思维难度不大。我们要求从$(0,0)$到$(n,n)$的方案总数,如果没有马的话,我们可以这么做: 设$f[i][j]$为从$(0,0)$走到$(i,j)$的方案总数,我们知道一定是有上面和左边走来 阅读全文
posted @ 2018-12-14 15:46 PigZhou 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 线性筛法 what is 线性筛??就是基于最基本的筛法的优化。 在基础的筛法上,我们发现有的数字会被重复筛,例如6既会被2枚举到也会被3枚举到,必然有重复运算。 我们的做法就是让每一个数的最小因数筛。 $FOR$ $EXAMPLE:$ 有一个数$2 2 3 5$ 有另一个数 $3 3 3 5$ 那 阅读全文
posted @ 2018-12-14 15:35 PigZhou 阅读(1698) 评论(1) 推荐(2) 编辑
摘要: 欧几里得算法:最大公因数$(gcd)$ 该算法基于: $gcd(a,b)=gcd(b,a$%$b)$ 证明: 令$a$ % $b = r$, 则 $a = k b + r,$ 因此$r = a k b$ 设$d$为$a,b$的公约数,那么$d|a, d|b,$ 则$a k b$ 能被$d$整除,即$ 阅读全文
posted @ 2018-12-14 15:31 PigZhou 阅读(147) 评论(0) 推荐(0) 编辑
摘要: @ "toc" 树状数组的引入 相信读者一定知道什么是前缀和,形如一串数$a1,a2...,an,sum[i]=a[1]+a[2]+...+a[i]$ 前缀和在算法的优化上占有很重要的地位,一般就会预先对数据进行预处理运算以后,再在运算过程中用$O(1)$时间调用,这样的操作很大程度上避免了实际运算 阅读全文
posted @ 2018-12-14 15:19 PigZhou 阅读(1275) 评论(0) 推荐(0) 编辑