摘要:
实现的功能如下——在一个N个点的无环图中,共有N-1条边,M个访问中每次询问两个点的距离原理——既然N个点,N-1条边,则说明这是一棵树,而且联通。所以以1为根节点DFS建树,然后通过求两点的LCA的方式,先求得最近公共祖先,然后再通过深度来求出两点距离 1 type 2 point=^... 阅读全文
摘要:
实现功能——输入N,M,提供一个共计N个单词的词典,然后在最后输入的M个字符串中进行多串匹配(关于AC自动机算法,此处不再赘述,详见:Aho-Corasick 多模式匹配算法、AC自动机详解。考虑到有时候字典会相当稀疏,所以引入了chi和bro指针进行优化——其原理比较类似于邻接表,这个东西和nex... 阅读全文
摘要:
实现的功能——输入1 x,将x加入小根堆中;输入2,输出最小值并去在堆中除掉 实现原理——左偏树,这里面维护的是一个小根堆,个人认为其还是没有发挥出左偏树的真正威力——其真正威力在于堆与堆之间可以直接合并,而且复杂度仅为O(logN),在零散插入元素时可以采用本程序中一个个加入的方法,但是当有些题目 阅读全文
摘要:
实现功能为二分图匹配原理:匈牙利算法,核心思想——匹配上了就配,没直接匹配上也要通过前面的腾出位置让这个匹配上(详见:趣写算法系列之——匈牙利算法)本程序以Codevs2776为例详见Codevs2776 1 type 2 point=^node; 3 node=record 4 ... 阅读全文
摘要:
2776 寻找代表元时间限制: 1 s空间限制: 256000 KB题目等级 : 黄金 Gold题目描述Description广州二中苏元实验学校一共有n个社团,分别用1到n编号。广州二中苏元实验学校一共有m个人,分别用1到m编号。每个人可以参加一个或多个社团,也可以不参加任何社团。每个社团都需要选... 阅读全文