![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
MicZ
这个作者很懒,什么都没留下…
展开
-
HOJ 1456 Team Queue(用queue进行模拟)
这题用的是queue,还有用了map实现将不同的人分到若干组。queue里的元素还是queue,这样就能实现插队的功能了,直接在特定的queue后面push即可。这里还用了一个bool型的visit数组,用来记录这一个team中是否有人已经在队列里。如果有,直接在对应的queue后面push一个新member。如果没有,说明这个member是他们team里面第一个来排队的,直接把他push在队尾即原创 2012-08-24 16:32:33 · 764 阅读 · 0 评论 -
POJ The Suspects(基本的并查集)
没什么好说的,并查集的基本操作,都在注释里了#include #include #include #define MAXN 30005using namespace std;int parent[MAXN];int rank[MAXN];//并查集的秩,根据题意,这里选用树的结点数。void MakeSet(int n){ for(int i=0; i<=n;原创 2012-12-16 10:45:34 · 407 阅读 · 0 评论 -
Ordered Fractions(二叉搜索树)
题意:输入一个n,按从小到大的顺序输出从0到1之间的所有分母不大于n的最简分数。比较容易想到的是排序。可以用结构体表示一个分数,将所有符合条件的分数都存到数组里,然后sort一下,输出就行。注意cmp函数的写法bool cmp(node x,node y){ return x.a*y.b<x.b*y.a; //比较两个分数的大小,交叉相乘} 最近刚学了二叉树,可以用二原创 2012-11-18 23:41:38 · 482 阅读 · 0 评论 -
HOJ 1225 Suptermarket(并查集)
题意:先给出商品个数n,然后对于每一个商品ai{pa,da},pa代表这个商品的利润,da代表这个商品必须在第d天之前售出. 每天只能卖出一个商品问如何安排卖的顺序,使得利润最大.输出最大利润分析:根据贪心的策略,按利润排序,利润最大的放在最前面.按ddl分集合ddl=1的集合,只能在0~1的时间卖.ddl!=1的集合,除了在ddl那天卖,还能在ddl之前的某一原创 2012-10-21 15:53:44 · 450 阅读 · 0 评论 -
线段树基本应用——区间最值查询
感觉对线段树快有阴影了。。还是先从最简单的开始吧。关键是理解原理。求区间最小值:题目:2 //testcases 5 3 //n:数组元素个数,m:查询次数78 1 22 12 3 //输入数组,每个数最大值不超过10^51 2 //查询从l到r上的最小值3 54 4#include #inclu原创 2012-10-06 09:43:08 · 1990 阅读 · 0 评论 -
HOJ 2275 Number sequence(树状数组)
题意:给定一个n个元素的数列,令Ai, Aj, Ak,使得 Ai Ak 且 i 分析:n最大可达50000,常规的暴力枚举的话,复杂度为O(n^2),1s的时限肯定会超时。考虑树状数组:树状数组通常用于解决以下问题:数组{a}中的元素可能不断地被修改,能快速地获取连续几个数的和。令num[i]做c[]的下标,来检索树状数组对于本题数列中每输入一个元素num[原创 2012-10-03 16:38:52 · 579 阅读 · 0 评论 -
关于优先级队列STL
STL之priority_queue【转】STL之priority_queue【转】 STL之优先队列原本以为priority_queue很简单,才知道原来懂的只是最简单的形式。头文件:#include优先队列,也就是原来我们学过的堆,按照自己定义的优先级出队时。默认情况下底层是以Vector实现的heap。既然是队列,也就只有入队、出队、判空、大小的操作,并不具备转载 2012-08-28 16:30:02 · 3550 阅读 · 0 评论 -
HOJ 1898 Babelfish(Trie树)
题意就是先输入一个字典: 目标字符串-----输入字符串然后输入一个字符串,在上面的对应关系中进行查找,如果有则输出目标字符串,没有则输出eh。如果不想超时的话,明显就要套字典树了。代码贴上来,留作模板。字典树还是挺简单易懂的嘛。。。#include #include #include #include using namespace std;const原创 2012-08-27 22:26:25 · 425 阅读 · 0 评论 -
POJ 1861 Network(Kruskal)
求最小生成树。这题是special judge。Sample给的有问题,无视之。第一次写Kruskal,当模板吧。里面还套用了并查集的模板。#include #include #include #include #define MAXNODE 1500#define MAXEDGE 16000using namespace std;int parent[MAXNODE]; /原创 2012-12-16 13:08:40 · 381 阅读 · 0 评论