数据结构
mig_davidli
稍微明白点算法和C++,参加过几个小项目。。
展开
-
【带删除并查集】FZU 2155 ——盟国
来源: 今天在安静的草坪上写这些东西,相对于其他地方,心理能够宁静下来许多,就是稍微有点冷了。 带删除的并查集。方法是将初始化father[i]=i的,用数组代替,这样可以回溯到删除时的初始状态了。 时间卡的略微拙计。 #include #include #include #include #include using namespace std; const int M原创 2014-04-07 19:02:14 · 995 阅读 · 0 评论 -
【并查集买一送一】Poj 2524——Ubiquitous Religions
来源:点击打开链接 更加标准的模板题,几乎所有OIER和ACMER的培训上都讲过类似的例子,什么配对强盗然后看分几波。。配对敌人看看有几方势力。。配对物品发现有几种。。之类的云云,一概属于并查集。。。再去看看状态压缩。。ORORZ。。我看的课件是OIER的PAS版。。。。。。。。。。高中生IMBA #include #include #include using namespace st原创 2013-01-22 16:42:25 · 699 阅读 · 0 评论 -
【STL+并查集+卡格式卡时间】HDU 3172——Virtual Friends
题目:点击打开链接 这个题算是并查集的中级应用,给出一队人名,求记录社交朋友的匹配组数。提示:朋友的朋友也是你的朋友。 并查集好说,这个题trick相当多.....WA了10次以上: 1、请全部使用scanf,这个题卡时间非常严,char[]也是可以往string的map容器中装的,无所谓。 2、查找函数最好使用非递归版。 3、要建立一个数组,用来记录当前节点的森林层数。 4、输入格式原创 2013-01-23 14:30:21 · 669 阅读 · 0 评论 -
【并查集入门】HDU1232——畅通工程
来源:点击打开链接 看KMP看烦了,来一道并查集入门吧。并查集其实是一种简单的数据结构,采用树的方式存储,数组中读取的方式是通过父亲节点来进行查找,顾名思义,取该名的原因是因为可并可查。常用来解决一种求两两关系之间的总类数的模型,实现也十分美观,没有什么难懂的地方。状态压缩也非常浅显,待了解深入后可以小做总结以备忘之。 这个题是标准的并查集模板,结构清晰,基本都不用讲,很快就可以自己练会。没有原创 2013-01-22 16:37:31 · 712 阅读 · 0 评论 -
【树状数组第一弹】poj 2352——Stars
题目:点击打开链接 近乎模板题,关于树状数组的。 给出一溜星星的坐标,在某星星左边或左下的比该星星低一个等级,现在按以Y的顺序输入(也就是说不需要再处理Y了),处理X就可以了,问各个等级的星星有几颗?这个题是在HDU镜像上做的,WA了若干次,TLE,CE,WA,RE什么提示都有,最后在POJ上一下子就过了。。也可以当树状数组的模板使了。 PS:事后翻阅Discuss时得知,不知怎么回事HDU原创 2013-01-24 13:57:17 · 613 阅读 · 0 评论 -
【栈与队列】SDUT练习2—数据结构实验之栈一:进制转换
题目:点击打开链接 注意: 1、进制转换最有效的方法依然是短除法 2、empty()由于设计问题,在最后的某些边界情况出现BUG,比如内存错误,所以不要太信赖empty()(这个题可能没问题,其他题不一定),手动判0。 3、注意输出格式。 #include #include using namespace std; int main() { stack tar;原创 2013-01-23 10:59:59 · 2243 阅读 · 1 评论 -
【树状数组初探第二弹】HDU 1166题解——敌兵布阵
来源:点击打开链接 这个题有两种解法,树状数组&线段树,当然这也是这种题目的通常状况,线段树和划分树普适性更强一些,但线段树显然更简单,比如我印象深刻的有2012长春赛区区域网络赛的第一道题,快速的做法是用一个三维的树状数组,无解的怨念啊。。 这个题没什么要注意的,寻找第I到J个的和也很简单,用find_add(J)-find_add(I-1)就行了。。。。这两道题很适合初学者了解树状数组。原创 2013-01-25 14:24:21 · 808 阅读 · 0 评论 -
【三维树状数组与离散化】HDU 4267——A Simple Problem with Integers
题目:点击打开链接 长春赛区网络赛的题,也是2012年五大区网络赛第一场的第一个题,当时智商拙计,连树状数组和线段树的大名也没有听说过,居然以为是模拟被大神们好一阵修理。。 现在学习了树状数组,写起来也是磕磕绊绊,参阅了若干大神的若干资料,终于凑合了这个三维树状数组的更新。和一般的树状数组不同的是,为节约时间,尽量不TLE,我们的第二维是K,第三维是a%k(为什么是这个呢?原式中的(i-a)%原创 2013-01-26 10:30:24 · 1031 阅读 · 0 评论 -
【杂七杂八的整合】Ubuntu Linux 12.04中的一些使用技巧
1、全局菜单关闭与打开 关闭:sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt 但是对于firefox,还需要在“扩展组件”-“扩展”里面把“global menu bar integration”这一项禁用 打开:sudo apt-get install appmenu-gtk appmenu-gtk3 appmenu-原创 2014-03-11 20:01:59 · 951 阅读 · 0 评论 -
【Trie树】HDU 1671—— Phone List
来源:点击打开链接 好久不发解题报告了……这个是裸的Trie树模板题。需要增加内存释放删除的函数,否则会报MLE。 #include #include #include #include using namespace std; char tar[10005][20]; struct Trie { Trie *next[10]; int v; //根据需要变化,原创 2014-03-13 14:55:05 · 976 阅读 · 0 评论 -
【并查集变形】POJ 2236——Wireless Network
题目链接:点击打开链接 并查集的一个变形问题,给出一些电脑(坏了的电脑)和允许通讯的电脑的最大距离,然后用O功能-修复一些电脑,S功能查询两个电脑能否正常通讯。 若想使电脑正常通讯,需要满足两个条件: 1、两台电脑的距离要比允许的最大值小。 2、两台电脑必须都是修复好的。 比起一般的并查集问题,多使用了一个距离的判断参数,来判断可能出现的距离。 好长时间没用并查集了,最初的时候居然漏掉原创 2013-05-09 14:44:54 · 836 阅读 · 0 评论