随笔分类 - ACM-理论知识
各种STL用法,小知识点,等
摘要:PartitionTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 954 Accepted Submission(s): 545Problem D...
阅读全文
摘要:什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786...
阅读全文
摘要:set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名...
阅读全文
摘要:贝尔数贝尔数以埃里克·坦普尔·贝尔(Eric Temple Bell)为名,是组合数学中的一组整数数列,开首是(OEIS的A000110数列):Bell NumberBn是基数为n的集合的划分方法的数目。集合S的一个划分是定义为S的两两不相交的非空子集的族,它们的并是S。例如B3=5因为3个元素的集...
阅读全文
摘要:引用 数独游戏技巧(图解)一直都有在玩数独一般难度的都能完成可是高难度的就完全没办法了好多累计玩了几十小时都解不出刚刚在网上看到这个介绍数独技巧的帖子真的很实用不过方法太多得慢慢消化。。。引用地狱大坏蛋的数独游戏技巧(图解)i)唯一数法:如果我们发现某个格子中只有一个可用候选数,那么这个格子必然是这...
阅读全文
摘要:#include#include#includeusing namespace std;int next[50005];char s[50005],t[50005];void getnext()//next[]数组,next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀。{...
阅读全文
摘要://为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数//结果VC中还是认为是32位的,显然不合适//typedefsignedlongintTSint64;//typedefunsignedlongintTUint64;//ANSIC中规定longlong...
阅读全文
摘要:POJ1006: 中国剩余定理的完美演绎问题描述 人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给...
阅读全文
摘要:欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗...
阅读全文
摘要:(一)Fibonacci数列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的第n项的快速求法(不考虑高精度).解法:考虑1×2的矩阵【f[n-2],f[n-1]】。根据fibonacci数列的递推关系,我们希望通过乘以一个2×2的矩阵,得到矩阵【f[n-1],f[n]】=【f[n-1]...
阅读全文
摘要:参考博客1: 据说,矩阵快速幂在递推式优化上相当神奇,而且效率很高。。。 两矩阵相乘,朴素算法的复杂度是O(N^3)。如果求一次矩阵的M次幂,按朴素的写法就是O(N^3*M)。既然是求幂,不免想到快速幂取模的算法,这里有快速幂取模的介绍,a^b %m 的复杂度可以降到O(logb)。如果矩阵相乘是...
阅读全文
摘要:对于一般的具有常系数线性递推关系的递推数列,若需要很快算出某一项的精确值,一般的方法是求出特征方程的解然后解出这个递推关系的通项公式。可是随着递推关系阶数的升高,解特征方程的难度也逐渐增大,甚至在递推关系阶数大于 5 之后,特征方程的次数随之超过 5,根本没有代数解法。本文利用矩阵乘法,提出了一个在...
阅读全文
摘要:计算某一段代码的执行时间,下面给出两种常用的方式:第一种:使用GetTickCount函数#include#includeint main(){ DWORD start_time=GetTickCount(); { //此处为被测试代码 } DWORD e...
阅读全文
摘要:关于__int64的使用!类型long long__int64intmax_t格式%lld%I64d%I64d在Dev C++中,三种类型均需用%I64d格式输出 ,c语言中intmax_t需要用到头文件stdint.hC++采用cin输入时,两种类型均可。eg1eg2eg3#includeint ...
阅读全文
摘要:Vector用于存储对象数组常用方法1.push_back在数组的最后添加一个数据2.pop_back去掉数组的最后一个数据3.at得到编号位置的数据4.begin得到数组头的指针5.end得到数组的最后一个单元+1的指针6.front得到数组头的引用7.back得到数组的最后一个单元的引用8.ma...
阅读全文
摘要:C++ vector 排序C++中当 vector 中的数据类型为基本类型时我们调用std::sort函数很容易实现 vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结构体类型时,我们该怎样实现升序与降序排列呢?有两种方法,下面的例子能很好的说明:方法1:我们直接来看代...
阅读全文
摘要:常见hash算法的原理散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说...
阅读全文
摘要:西方有句谚语:不要重复发明轮子!STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。排序是最广泛的算法之一,本文详细介绍了ST...
阅读全文
摘要:Dijkstra和Prim算法的区别1.先说说prim算法的思想:众所周知,prim算法是一个最小生成树算法,它运用的是贪心原理(在这里不再证明),设置两个点集合,一个集合为要求的生成树的点集合A,另一个集合为未加入生成树的点B,它的具体实现过程是:第1步:所有的点都在集合B中,A集合为空。第2步:...
阅读全文
摘要:错排问题错排问题就是一种递推式,不过它比较著名且常用,所以要熟记!方法一: n各有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。任给一个n,求出1,2,……,n的错排个数Dn共有多少个。 递归关系式为:D(n)=(n-1)(D(n-1)+D(n-2)...
阅读全文

浙公网安备 33010602011771号