数据结构
wchhlbt
这个作者很懒,什么都没留下…
展开
-
hdu 1754 I Hate It (线段树)
解题思路:标准的线段树单点修改入门题~AC代码:#include #include using namespace std;#define maxn 200005//int score[maxn];char ch;struct NODE{ int l,r,val;} node[4*maxn];int build(int root, int l, int r)原创 2016-10-04 20:53:56 · 222 阅读 · 0 评论 -
hdu 4417 Super Mario (二分法 + 划分树求区间第K大)
题目大意:n个数,给定一段区间【l, r】,问在这段区间上小于等于 h 的数字有多少个。解题思路:采用划分树可以在O(log(n))求出区间第K大的值,再采用二分法选择出最大的K即为答案。划分树的讲解会在以后补充。AC代码:#include#includeusing namespace std;#define M 100005int tree[20][M],sorted[M];原创 2016-11-26 18:21:50 · 367 阅读 · 0 评论 -
UVaLive 3938 "Ray, Pass me the dishes!" (线段树求动态最大连续和)
题目大意:求一段整数序列中最大连续续和的左右端点的坐标。解题思路:因为需要高效的求出一段的区间和,考虑使用线段树算法,从分治的角度来思考这个问题,这个最大的连续和有可能在一段区间的左半区间也有可能在右半区间也有可能贯穿了两个区间。 也就是说我们需要构造一个线段树,并同时维护四个值,最大前缀和,最大后缀和,最大连续和,区间和 这三个值都存在着与子节点的递推关系,利用线原创 2017-01-15 22:24:45 · 284 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort (树状数组)
解题思路:本题要求求出逆序对的个数,因数据量较大所以采用树状数组的方法。先将所有数据离散化,然后出现一个数字,则在对应的数字位置加一。然后对每个数字统计在他前面有多少个小于等于他的数,也就可以的得到有多少个比他大的数了。AC代码:/* @Author: wchhlbt @Date: 2017/3/1*///#include #include #include原创 2017-03-03 09:48:59 · 245 阅读 · 0 评论 -
POJ 3764 The xor-longest Path (Trie树 + dfs)
题目大意:给一颗有边权的树,求一条路径使得,这条路径上的所有边权异或值最大解题思路:类比数组中求一段区间的和,我们可以用前缀和的思想先预处理出每个节点到根节点的异或前缀和,再有异或的性质可以得到,a^b^b = a,所以有任意两个节点之间的路径的异或和就可以用两个预处理的前缀来表示。公共祖先上面的路径的值会被重复计算两次而抵消。 问题到这里就被简化为了另一个问题,在一组数中,求原创 2017-03-05 10:56:38 · 304 阅读 · 0 评论 -
第八届福建省大学生程序设计竞赛 FZU 2277 Change (dfs序+树状数组)
题目原文: Problem 2277 ChangeAccept: 60 Submit: 354Time Limit: 2000 mSec Memory Limit : 262144 KB Problem DescriptionThere is a rooted tree with n nodes, number from 1-n. Root’原创 2017-07-24 16:27:05 · 518 阅读 · 0 评论 -
SPOJ 375 QTREE (树链剖分入门题)
题目大意:对一棵有n(n解题思路:对这棵树进行树链剖分,然后用线段树维护区间最大值。树链剖分理解:通过规定一种特殊的次序,将树形结构变为线性结构,从而可以用多种数据结构来解决树上路径方面的问题。AC代码:/* @Author: wchhlbt @Date: 2017/7/22*/#include #define Fori(x) for(int i=0;i原创 2017-07-26 14:44:35 · 296 阅读 · 0 评论 -
2017 CCPC 哈尔滨 A (hdu 6230) Palindrome (Manacher + BIT)
解题思路: 题目中要求的回文串大致为 ______ i ____ j ______ 分别以 i j 为中心的两个回文串我们可以使用Manacher算法先处理出以每个字符为中心的回文串的长度,注意这里求出来的回文串长度一定都是奇数然后我们令 p[i] 为以第 i 个字符为中心的回文半径然后一个字符串想要满足题意需要满足下面三个条件j > ij-i j-i 我们原创 2017-11-12 17:51:36 · 1364 阅读 · 0 评论