
学习心得
文章平均质量分 77
acm_lkl
这个作者很懒,什么都没留下…
展开
-
STL中常用数据结构基本操作
STL 中优先队列的使用方法(priority_queu) 基本操作: empty() 如果队列为空返回真 pop() 删除对顶元素 push() 加入一个元素 size() 返回优先队列中拥有的元素个数 top() 返回优先队列对顶元素 在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。 使用方法: 头文件: #include 声明方式:转载 2014-07-15 23:20:22 · 603 阅读 · 0 评论 -
国家集训队论文分类
网址:http://blog.youkuaiyun.com/whu_zxl/article/details/7849124转载 2014-11-05 19:52:04 · 509 阅读 · 0 评论 -
优先队列的使用
//优先队列的使用 #include #include #include #include using namespace std; //定义结构体,并重载运算符 typedef struct node { int x,y; friend bool operator { if(n1.x==n2.x)原创 2014-08-30 16:15:38 · 441 阅读 · 0 评论 -
自己写的无向连通图求割点和桥的代码
//求无向连通图的割点和桥 #include #include #include #include using namespace std; #define MaxSize 1000 int pre[MaxSize]; //记录节点在dfs生成树中的编号,并可以用来判定节点是否已访问 int iscut[MaxSize],isbrige[MaxSize][MaxSize原创 2014-08-07 19:57:07 · 868 阅读 · 0 评论 -
无向连通图的割点和桥
无向连通图的割点、桥 泳裤王子原创,转载请注明出处 http://blog.youkuaiyun.com/tclh123/article/details/6705392 预备知识: 割点集合 在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。 割边集转载 2014-08-07 17:43:43 · 1086 阅读 · 0 评论 -
map key值自定义排序
C++代码 map mymap; for (map::iterator it = mymap.begin(); it != mymap.end(); it++) { cout key "\t" value "\n" } 上述示例代码中,key的访问顺序为KeyType默认的由小到大顺序。 当KeyType为string时,则按照string的默认比较函数转载 2014-07-30 19:26:54 · 1908 阅读 · 0 评论 -
STL之map
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2014-07-30 18:21:44 · 416 阅读 · 0 评论 -
字符串匹配算法--KMP
字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。 这种算法不太容转载 2014-08-04 10:16:23 · 484 阅读 · 0 评论 -
单源最短路径dijkstra算法的初步学习(1)
今天学长给我们讲了,求最短路的4种算法以及他们原创 2014-07-28 23:46:30 · 586 阅读 · 0 评论 -
容斥原理的应用---求1--r中与n互素数的个数
问题:求1~r中有多少个数与n互素。 对于这个问题由容斥原理,我们有3种写法,其实效率差不多。分别是:dfs,队列数组,位运算。 先说说位运算吧: 用二进制1,0来表示第几个素因子是否被用到,如m=3,三个因子是2,3,5,则i=3时二进制是011,表示第2、3个 因子被用到 [cpp] view plaincopy LL Solve(L转载 2014-07-26 21:03:11 · 1447 阅读 · 0 评论 -
C++中pair的使用方法
pair的类型: pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。。 pair p; pair p; pair p; 都可以。。。 应用:如果一个函数有两个返回值 的话,如果是相同类型,就可以用数组返回,如果是不同类型,就可以自己写个struct ,但为了方便就可以使用转载 2014-07-28 15:54:26 · 940 阅读 · 0 评论 -
并查集
ACM之并查集 (2011-07-31 20:05:22) 转载▼ 标签: 杂谈 分类:数据结构 并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?) 来看一个实例,杭电1232畅通工程ht转载 2014-07-24 20:35:52 · 424 阅读 · 0 评论 -
扩展欧几里得算法及其应用
欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 证明略去了。 基本代码实现: 1 int gcd(int a,int b) 2 {转载 2014-07-22 23:27:40 · 794 阅读 · 0 评论 -
C++字符串输入函数小结
做了一些字符串类型的题目,发现转载 2014-06-08 00:28:03 · 1226 阅读 · 0 评论 -
最大子序列和问题逐步优化从O(n^3)---O(n)
问题: 给定一个序列A1,A2,A3,........An(可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大 。 如整数序列-2, 11, -4, 13, -5, 2, -5, -3, 12, -9的最大子序列的和为21。 方法1:最简单的一个方法就是枚举每个子序列,然后求出每个子序列的和,再取其中的最大值; 时间复杂度为n^3;代码如下: int原创 2014-11-29 15:09:24 · 779 阅读 · 0 评论