![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 77
High_EnergyElectron
这个作者很懒,什么都没留下…
展开
-
并查集入门简略笔记:闲谈按秩合并
按秩合并是并查集的另一种优化方法,它的原理就是记录每个节点的高度,这样每次合并时就可以将高度较小的节点的根直接接到高度较大的节点上面,而不需要在去寻找高度较大的节点的根,减少了一次find函数的调用,这样每次合并都只需要调用一次find函数。按秩合并看似对并查集有了很大的优化,但其实加上了路径压缩后,每次调用find函数都会都路径上的节点进行压缩,下次调用路劲上的点就深度就仅为2(起点和终点),并原创 2016-02-06 13:17:53 · 843 阅读 · 0 评论 -
并查集入门简略笔记 附HDU1232
闲聊:有人称呼并查集为森林,理解后会发现非常形象,刚开始时每个元素都是独立的树,相互之间没有联系,随着一个又一个关系给出,这些树联系在了一起变成了一个又一个的森林。并查集的关键在于find函数,而find函数也有分为最最基础的原始版和路径压缩版,路径压缩也有两种方式:递归和非递归。 并查集的思路是:初始每棵树都是独立的,那么每课树的根都是它自己,每次得到一组相连的树,我们就把其原创 2016-02-03 17:54:13 · 300 阅读 · 0 评论 -
解题报告:POJ_1703Find them, Catch them 并查集
DescriptionThe police office in Tadu City decides to say ends to the chaos, as launch actions to root up the TWO gangs in the city, Gang Dragon and Gang Snake. However, the police first needs to i原创 2016-02-03 18:19:05 · 392 阅读 · 0 评论 -
解题报告:HDU_1277 全文检索 字典树
全文检索Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1636 Accepted Submission(s): 533Problem Description我们大家经常用google检索信息,但是检索信息的程原创 2016-07-06 14:46:16 · 328 阅读 · 0 评论 -
解题报告:POJ 3162 Walking Race 树型DP+单调RMQ
Walking RaceTime Limit: 10000MS Memory Limit: 131072KTotal Submissions: 3838 Accepted: 956Case Time Limit: 3000MSDescriptionflymouse’s sister wc is very c原创 2016-12-15 14:31:41 · 357 阅读 · 0 评论 -
解题报告:51nod 1686 第K大区间 二分+尺取
题目链接:51nod 1686第k大区间思路:可以发现答案范围为1~n,那么考虑二分答案。check函数可以用尺取的方式,每当r右移,左移l使得当前序列的值小于check的值,同时加上右边全部的序列个数(n-l+1)个,这样就可以得到序列的值大于等于check的值的序列数。需要注意的是输入的数组的值在Int范围内,可以直接用map,交了两发,一发T了,一发A了。。考虑题原创 2017-03-14 21:02:47 · 327 阅读 · 0 评论 -
解题报告:HDU_6040 Hints of sd0061 STL::nth_element
题目链接题意:给你一个序列的递推函数,m次询问,询问这个序列上第bi小的数。官方题解:最关键的部分在于了解STL里的nth_element函数,简单介绍一下:这个函数的时间复杂度近似线性函数的调用(取第n小):nth_element ( arr.begin() , arr+n,arr.end() )调用函数后保证比第n个数小的原创 2017-07-26 10:06:47 · 837 阅读 · 2 评论 -
解题报告:HDU_6136:Death Podracing (优先队列+循环链表)
题目链接题意:n个人以不同的速度在环上顺时针或逆时针移动,每次相遇,移除下标小的,问最后只剩下一个人的时间的分数形式官方题解及思路:也不是第一次写循环链表的题了,还是写了好久。。注意维护循环链表时要同时更新左右指针代码:#includeconst int N = 1e5+10;using namespace std;struct no原创 2017-08-18 10:15:28 · 512 阅读 · 0 评论 -
解题报告:Codeforces Round #433 (Div. 2) E. Boredom ( 离线处理+树状数组)
题目链接题意:n*n的矩阵,有n个不同行列的格子染色,染色的格子两两之间组成的矩阵定义为beautiful。q组询问,每次给出一个矩阵,询问与它相交的beautiful的矩阵的数目n,q思路:每次查询分成九个矩阵,只需要知道各个矩阵中的染色的点数,即可得出答案其中五个矩阵可以由染色的性质可以直接得出答案离线处理另外四个即可代码:#include原创 2017-09-07 09:56:36 · 766 阅读 · 0 评论