noip-基础知识
shiyongyang
这个作者很懒,什么都没留下…
展开
-
单调栈及单调队列基础与运用
单调栈概念:单调递增或单调减的栈,跟单调队列差不多,但是只用到它的一端; 用处: 1,在线性数据中可以在O(n)的时间复杂度内记录数据的最大值最小值及前缀后缀中的最值(nlog(n)); 2,在线性数据中可以在O(n)的时间复杂度内记录下每一个位置中比当前位置大(小)的最近位置; 注意: 1,通常在单调栈中存的是data【】的下标而不是其中的值,因为通过下标我们可以找到值而通过值却找不到下原创 2017-07-19 00:01:05 · 285 阅读 · 0 评论 -
常用Hash质数表
61, 83, 113, 151, 211, 281, 379, 509 683, 911 / 一千以下 1217, 1627, 2179, 2909, 3881, 6907, 9209,转载 2017-09-24 20:03:50 · 13124 阅读 · 0 评论 -
对拍
实现细节首先对拍程序,顾名思义,一个输入给两个程序分别跑一遍,看看对不对的上。那么牵扯到三个步骤:生成一组输入数据把这组数据分别给两个程序运行,并生成两组输出数据比较两组输出数据看到这个步骤很多人应该已经有想法了,没错用文件操作能实现,但太麻烦,因为你得修改你自己的代码把输出重定向到一个文件,这要是一不小心忘记删重定向直接交了又得WA一遍233(不对,是RE),这里转载 2017-09-16 16:52:19 · 287 阅读 · 0 评论 -
二分基础入门
转自:http://blog.csdn.net/luoweifu/article/details/16656737简要描述二分查找又称折半查找,对排好序的数组,每次取这个数和数组中间的数进行比较,复杂度是O(logn)如:设数组为a[n],查找的数x,如果x==a[n/2],则返回n/2;如果x ,则在a[0]到a[n/2-1]中进行查找;如果x > a[n转载 2017-09-26 11:00:00 · 343 阅读 · 0 评论 -
noip 2017 注意事项
拿到题目先写裸的暴力,暴力一定要写对,没想出正解有暴力垫底,想出了正解也可以拿来拍 过了样例之后一定要造数据测,数据越坑越好 一定要造极限数据,哪怕造不知道答案的数据都行,主要是检测RE和TLE,正确性用拍来检测 如果目前已经可以拿到很高的分,可以考虑放弃剩余的小分数,把时间留给其它地方 题目一定要认真仔细看清楚,坚决避免代码写完了结果题目看错的情况转载 2017-09-26 14:38:56 · 2162 阅读 · 0 评论 -
树上差分瞎搞
版权声明:转载请注明出处:http://blog.csdn.net/zhayan9qvq 数据结构题中解法千变万化,但分析最近几年的趋势来看,有一种比较重要的思想->树上差分。(会树剖的大神不要嘲笑,虽然很多时候树剖都能很好解决QwQ)。至少,树上差分熟练的话还是可以解决很多问题的。这里就先分析两种基本的差分思路。1.找被所有路径共同覆盖的边。转载 2017-09-18 17:22:37 · 435 阅读 · 0 评论 -
数论板子
1.gcdint gcd(int a,int b){ return b?gcd(b,a%b):a;} 2.扩展gcd )extend great common divisorll exgcd(ll l,ll r,ll &x,ll &y){ if(r==0){x=1;y=0;return l;} else { ll转载 2017-09-26 18:02:32 · 266 阅读 · 0 评论 -
关于数据类型的一些知识
速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlong转载 2017-09-19 17:01:39 · 274 阅读 · 0 评论 -
动态规划
理......................................................................................................................... 1 机器分配(HNOI’95)......................................................转载 2017-09-11 20:14:06 · 3059 阅读 · 0 评论 -
容斥原理进阶
容斥原理 对容斥原理的描述 容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率。 描述 容斥原理可以描述如下: 要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集转载 2017-09-28 09:14:19 · 597 阅读 · 1 评论 -
斜率优化 入门超经典,简单快乐入门
真是佩服大米饼:http://www.cnblogs.com/Paul-Guderian/p/7259491.html 值得一看的博客[1]玩具装箱(详细阐述) 【LINK】步骤一: 列出DP方程式:设f[i]表示分组完前i件物品的最小花费,为方便计算,设sum[i]表示是前i件物品的长度和。 f[i]=Min(f[j]+(sum[i]-su转载 2017-10-20 21:57:26 · 6310 阅读 · 2 评论 -
指针
指针的概念指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: int *ptr; char *ptr; int **ptr; int (*pt转载 2017-10-13 07:10:00 · 163 阅读 · 0 评论 -
Hash 常用知识
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。转载 2017-09-24 20:00:59 · 311 阅读 · 0 评论 -
lower_bound和upper_bound的用法
#include #include //必须包含的头文件using namespace std;int main(){ int point[10] = {1,3,7,7,9}; int tmp = upper_bound(point, point + 5, 7) - point;//按从小到大,最后一个小于等于7点位置 printf("%d\n",tmp);转载 2017-09-14 20:13:24 · 385 阅读 · 0 评论 -
splay tree基础及其运用
首先这有一个讲解非常详细,可以参考:http://blog.csdn.net/skydec/article/details/20151805#转载 2017-07-19 14:34:42 · 215 阅读 · 0 评论 -
图论总结
原文:http://blog.csdn.net/nomasp图的定义背景知识看到这篇博客相信一开始映入读者眼帘的就是下面这幅图了,这就是传说中的七桥问题(哥尼斯堡桥问题)。在哥尼斯堡,普雷格尔河环绕着奈佛夫岛(图中的A岛)。这条河将陆地分成了下面4个区域,该处还有着7座连接这些陆地的桥梁。问题是如何从某地出发,依次沿着各个桥,必须经过每座桥且每座桥只转载 2017-07-20 08:29:53 · 455 阅读 · 0 评论 -
pari的用法(stl)
pair 默认对first升序,当first相同时对second升序;类模板:template struct pair参数:T1是第一个值的数据类型,T2是第二个值的数据类型。功能:pair将一对值组合成一个值,这一对值可以具有不同的数据类型(T1和T2),两个值可以分别用pair的两个公有函数first和second访问。具体用法:1.定义(构造):转载 2017-08-16 15:03:42 · 842 阅读 · 0 评论 -
双头队列+spfa的运用
bzoj 2100 双头队列优化spfa#include #include #include using namespace std;deque q;int head[100010] , to[400010] , len[400010] , next[400010] , cnt , dis[100010][2] , inq[100010] , n;inline int read(原创 2017-08-18 10:14:11 · 256 阅读 · 0 评论 -
图论之最短路
目录 一、引例 1、一类不等式组的解二、最短路 1、Dijkstra 2、图的存储 3、链式前向星 4、Dijkstra + 优先队列 5、Bellman-Ford 6、SPFA 7、Floyd-Warshall转载 2017-08-12 09:29:46 · 775 阅读 · 0 评论 -
模板大集合
数据结构单调队列// BZOJ 2096#include#include#includeusing namespace std;#define N 3000005int k,n,l,r,lmax,rmax,lmin,rmin,ans;int a[N],qmax[N],qmin[N];struct hp{int Max,Min;};void push(int id)转载 2017-08-19 15:57:46 · 196 阅读 · 0 评论 -
杨辉三角与oi知识体系
1.什么是杨辉三角形2.入门:使用二维递推(小技巧:增加第0列、初始化问题)3.递归函数实现4.递推公式和递归函数,两者效率比较,时间空间复杂度分析5.进阶:滚动数组(空间复杂度的优化),迭代6.用一个数组,再优化空间。(顺序逆序问题)7.经典例题:01背包二维数组实现8.经典例题:01背包转载 2017-07-28 10:17:55 · 273 阅读 · 0 评论 -
七大查找算法
七大查找算法 文章来源:http://www.cnblogs.com/yw09041432/p/5908444.html阅读目录1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。转载 2017-08-28 14:28:55 · 4187 阅读 · 0 评论 -
NOIP 考前提醒
1.比赛前一天晚上请准备好你的各种证件,事先查好去往考场的路线。2.比赛之前请先调整你的屏幕分辨率到你喜欢的大小。3.比赛之前请把编译器的字体调为你平时惯用的字体,尤其是注意这种字体中的逗号,点,1,l 这种易混淆的字是不是区分明显。4.在不影响视野的情况下,请将字号尽可能调大,方便查错. 压缩包或许还不能解压,但是文件名已经可以知道了,在选手目录下用代码模板建好所有文件,转载 2017-09-22 19:12:54 · 477 阅读 · 2 评论 -
unique()去重函数
unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。他是c++中的函数,所以头文件要加#include,具体用法如下:int num[100];unique(num,mun+n)返回的是num去重后的尾地址,之所以说比不真正把重复的元素删除,其实是,该函数把重复的元素一到后转载 2017-10-16 11:41:48 · 631 阅读 · 0 评论