ACM-理论
寻找星空的孩子
CSDN博客首页:http://blog.csdn.net/u010579068?viewmode=list
博客园地址:http://www.cnblogs.com/yuyixingkong/
展开
-
Girls' research(hdu3294+Manacher算法)
Girls' researchTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1027 Accepted Submission(s): 389Problem Description One day, s原创 2015-08-23 16:09:33 · 1825 阅读 · 0 评论 -
bzoj 2818 Gcd(莫比乌斯+gcd(a,b)=d) 经典
2818: GcdDescription给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对.原创 2015-08-19 20:28:44 · 2948 阅读 · 0 评论 -
Visible Lattice Points(spoj7001+初探莫比乌斯)gcd(a,b,c)=1 经典
VLATTICE - Visible Lattice Pointsno tags Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0原创 2015-08-17 22:00:16 · 1176 阅读 · 0 评论 -
STL中Set的用法(详+转)
set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名思义是“集合”的意思,在set中元素都是唯一的,而且默认情况下会对元素自动进转载 2015-06-07 09:41:15 · 722 阅读 · 0 评论 -
优先队列使用方法
#include<iostream>#include<functional>#include<queue>using namespace std;struct node{ friend bool operator< (node n1, node n2) { return n1.priority < n2.priority; } int pri转载 2015-04-04 20:45:49 · 563 阅读 · 0 评论 -
常系数线性递推的第n项及前n项和 (Fibonacci数列,矩阵)
(一)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],f[n-1]+f[n-2]】很容易构造出这个2×2矩阵A,即:01原创 2015-03-23 11:32:29 · 679 阅读 · 1 评论 -
关于__int64的使用!
关于__int64的使用! 类型 long long__int64intmax_t格式%lld%I64d%I64d 在Dev C++中,三种类型均需用%I64d格式输出 ,c语言中intmax_t需要用到头文件stdint.hC++采用cin输入时,两种类型均可。eg1eg2eg3原创 2015-03-23 11:31:07 · 694 阅读 · 0 评论 -
常见hash算法的原理(转)
常见hash算法的原理 散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数原创 2015-03-23 11:29:36 · 723 阅读 · 0 评论 -
C++ vector 排序
C++ vector 排序 C++中当 vector 中的数据类型为基本类型时我们调用std::sort函数很容易实现 vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结构体类型时,我们该怎样实现升序与降序排列呢?有两种方法,下面的例子能很好的说明: 方法1: 我们直接来看代码吧,比较简单,容易理解: #include "stdafx.h" #inc原创 2015-03-23 11:29:54 · 968 阅读 · 0 评论 -
Vector
Vector用于存储对象数组常用方法1.push_back 在数组的最后添加一个数据2.pop_back 去掉数组的最后一个数据3.at 得到编号位置的数据4.begin 得到数组头的指针5.end 得到数组的最后一个单元+1的指针6.front 得到数组头的引用7.b原创 2015-03-23 11:29:56 · 534 阅读 · 0 评论 -
对vector等STL标准容器进行排序操作(转!)
西方有句谚语:不要重复发明轮子!STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。排序是最广泛的算法之一,本文详细介绍了STL中不同排序算法的用法和区别。1 STL提供的Sort 算法C++之所以得到这么原创 2015-03-23 11:28:18 · 584 阅读 · 0 评论 -
Dijkstra和Prim算法的区别
Dijkstra和Prim算法的区别1.先说说prim算法的思想:众所周知,prim算法是一个最小生成树算法,它运用的是贪心原理(在这里不再证明),设置两个点集合,一个集合为要求的生成树的点集合A,另一个集合为未加入生成树的点B,它的具体实现过程是:第1步:所有的点都在集合B中,A集合为空。第2步:任意以一个点为开始,把这个初始点加入集合A中,从集合B中减去这个点(代码实现很简单,原创 2015-03-23 11:27:20 · 2760 阅读 · 0 评论 -
矩阵快速幂取模
参考博客1:据说,矩阵快速幂在递推式优化上相当神奇,而且效率很高。。。 两矩阵相乘,朴素算法的复杂度是O(N^3)。如果求一次矩阵的M次幂,按朴素的写法就是O(N^3*M)。既然是求幂,不免想到快速幂取模的算法,这里有快速幂取模的介绍,a^b %m 的复杂度可以降到O(logb)。如果矩阵相乘是不是也可以实现O(N^3 * logM)的时间复杂度呢?答案是肯定的。转载 2015-02-08 15:52:43 · 1147 阅读 · 0 评论 -
线性递推关系与矩阵乘法
对于一般的具有常系数线性递推关系的递推数列,若需要很快算出某一项的精确值,一般的方法是求出特征方程的解然后解出这个递推关系的通项公式。可是随着递推关系阶数的升高,解特征方程的难度也逐渐增大,甚至在递推关系阶数大于 5 之后,特征方程的次数随之超过 5,根本没有代数解法。本文利用矩阵乘法,提出了一个在 O(k^3 ⌈logn⌈) 的时间复杂度内算出 k 阶常系数线性递推数列第 n 项的精确值的算法,并利用转移矩阵和特征方程的联系,把这个算法的时间复杂度优化到了 O(k^2 ⌈logn⌉).原创 2015-02-08 15:37:15 · 3497 阅读 · 0 评论 -
UVA12493 - Stars(求1-N与N互质的个数)欧拉函数
UVA12493 - Stars(求1-N与N互质的个数)欧拉函数 bnuoj26358原创 2015-08-17 12:55:16 · 2420 阅读 · 0 评论 -
Hotaru's problem(hdu5371+Manacher)多校7
Hotaru's problemProblem DescriptionHotaru Ichijou recently is addicated to math problems. Now she is playing with N-sequence.Let's define N-sequence, which is composed with three parts and satisfied with the following condition:1. the first part is the原创 2015-08-23 16:28:15 · 1058 阅读 · 0 评论 -
Manaher算法总结
对于Manacher算法,主要的作用是用来求一个字符串的最长回文子串。这个算法的时间复杂度书线性的,即O(n)下面我分两个部分来讲1)预处理这个算法的精妙之处在于巧妙地避免了考虑回文子串的长度是奇数还是偶数(如果你还不知道什么是回文数,回文串,请自行baidu)在Manacher算法中,需要提前预处理我们原本的字符串,这里把原串叫做s1, 把预处理之后的字符串叫做s2.那么,对于s1 = "aba原创 2015-08-23 16:49:01 · 1840 阅读 · 0 评论 -
CRB and Candies(lcm(C(n,0)..C(n,n)=lcm(1,2,,,n+1)/(n+1)))hdu5407
CRB and CandiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 358 Accepted Submission(s): 160Problem Description CRB has N d原创 2015-08-21 14:07:15 · 1655 阅读 · 0 评论