数据结构专题训练及总结

来源:互联网 发布:js添加图片二维数组 编辑:程序博客网 时间:2024/05/22 01:51

11.24~11.25 数据结构专题

¥&#@~ 题目 ~@#&¥
~ HDRF
~ Shortest Path Queries
~ 子树直径
~ Common Ancestor
~ Comprime Queries
~ 动态背包
~ 奇数度数图
~ Matrix Recurrence
~ Fold
~ Paper
~ Median on Binary Tree
~ Independent Events
~ Welcome to ICPCCamp 2017
~ Lowest Common Ancestor
~ Longest Path
~ LYKMUL
~ Subsequence Count


Soulution

HDRF

按照题意,肯定会先找到权值最小的节点,于是对这颗节点的子树递归处理就好了。而在对单独一个节点处理时,当删完了它以及它的子树后,有会有一个新的权值最小节点,在不断进行递归处理。由于每个节点只会被访问到一次,所以复杂度O(n*m)。只需要用dfs序维护子树中最小节点(线段树实现)就可以了 。

Shortest Path Queris

用线段树维护一个区间中中间的一列每个点到两边每个点的最短距离,然后讨论起点和终点在同、异侧,合并一下就可以了。

子树直径

讨论已知直径的两棵树和并时,若链接两棵树的边为E,则新树的直径只可能会经过E,或者就是原来的两个直径之一。而经过E时,端点又只会在原来的两个直径的四个端点中。然后就可以了。

Common Ancestor

如果一个点是(a,b)的答案,那么a,b一定在这个点两个不同的子树中。对每一个点维护一下就可以了。

Comprime Queries

这道题要考虑容斥原理,即先把x分解质因数,然后对这些因数在一定的区间内查询倍数并用容斥原理来查看有多少个数与x不互质。用整体二分一边求出答案(注意l是无意义的)
挂一篇题解 http://www.zhimengzhe.com/bianchengjiaocheng/qitabiancheng/216649.html

动态背包

用可持久化数据结构(说的好像很简单~~),放一个物品就更新答案,删一个就撤销

奇数度数图

很考思维的一道题,发现奇数个点的联通块一定不满足要求,进一步发现偶数点的联通块一定有一种情况满足要求,因此就很好做了。

第一天。完


Matrix Recurrence

很机智的用两个栈来模拟一个矩阵乘积的队列,每次加元素就在右边加,删元素就在左边删,左边为0就把右边全复制到左边,再把右边清空。右边维护总的乘积,左边对每一个维护一个乘积即可。

Fold

直接暴力模拟,用两个指针,当左边折叠部分大于右边时,翻一下就可以了。

Paper

主席树维护,整体二分。最终在统计答案时log查一下就好了。

Median on Binary Tree

将值大于和小于a-median的分别记做0和1,然后在更新a-median的时候只用log改一条链就可以了。

Independent Events

数学题呀!~还是房励行写的好 http://blog.csdn.net/OwenOwl/article/details/78634405
线段树维护

Welcome to ICPCCamp 2017

我们需要在计算一个y时使y+1不进队,才能保证不重不漏,对每个队,维护他们最高的排名,在统计答案时需要强制不取y+1,再加上空集就行了。同时删掉一个对就是单点修改。

Lowest Common Ancestor

先统计出每个点被当作LCA的次数,再用树链剖分,对每一个节点的重儿子做差分,就能很巧妙的转化问题。每次修改只用改最低点所在的链,O(log(n))。

Longest Path

用点分治的思想,将l,r的情况分为三种情况,然后发现只用考虑两种情况,正反跑两遍即可。

LYKMUL

其实就是所有的子集,每个的交*并,再求和。对每个点对算贡献,求出A,B被覆盖的次数和B被覆盖的次数就行了。

Subsequence Count

发现:
dp[i][0]=dp[i-1][0]+dp[i-1][1]+1;
dp[i][1]=dp[i-1][1];
用矩阵(1,1,1)转移dp[i][0]
(0,1,0)
(0,0,1)
用矩阵(1,0,0)转移dp[i][1]
(1,1,1)
(0,0,1)
又发现区间去反只需要再区间左右端点分别乘一个(0,1,0)就可以了。
(1,0,0)
(0,0,1)

第二天。完


总结

这几天的题,虽然好像都懂了,但写起来自己却并不会写。因此我还要加深自己的代码水平。同时很多题自己不能想出正解,说明我的思维水平还不够,需要进一步强化。也要记得再复习主席树等新学的知识。

原创粉丝点击