
数据结构----------
文章平均质量分 76
sprite_
这个作者很懒,什么都没留下…
展开
-
hdu5444 Elven Postman(二叉树遍历)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5444题目大意:给出一颗二叉树的先序遍历,默认的中序遍历是1.、2、……n。给出q个询问,询问从根节点出发到某个点的路径。思路:根据二叉树的先序和中序遍历可以建立出一颗二叉树,然后遍历二叉树查找即可。如何遍历?因为中序遍历是从小到大的,所以左子树根据这个遍历即可。代码:#in原创 2015-09-14 17:00:24 · 1933 阅读 · 0 评论 -
hdu3465Life is a Line(树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3465题目大意:给一个开区间(l,r),给n个直线,问这些直线在这段区间里面有多少个交点。思路:对于两条直线来说,我们可以求出他们分别于y=l,y=r的交点a,b,c,d。如果ad或者a>c&&b注意要把与y轴平行的数量也算进去。代码:#include#includ原创 2016-07-31 20:55:01 · 538 阅读 · 0 评论 -
hdu 5678 ztr loves trees(dfs序、主席树静态第k大)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5678题目大意:给出一颗根为1的树,有n个点,每个点都有一个value值。然后给出n-1条边,表示有两个点之间是相连的,最后形成一颗树。然后给出m个询问,每次询问节点x以下所有节点形成的序列的中位数。范围:n思路:主席树模板题。对于节点x以下的节点形成的序列求中位数,原创 2016-05-25 14:36:47 · 647 阅读 · 0 评论 -
poj 2104 K-th Number(主席树,静态第k小)
题目链接:http://poj.org/problem?id=2104思路:主席树。根据定义,对于序列[1…n]的每一个前缀[1…i](i对于询问操作,因为我们我们求的是第k小,所以利用二分查找。如果在[1,n]的区间里面,可以先看左子树上的数字是否大于等于k,如果是就去左子树,否则就去右子树。那么到[l,r]的区间里面,其实就是T看[r]-T[l-1]的值,然后和k去比较原创 2016-04-26 20:55:52 · 470 阅读 · 0 评论 -
codeforces #343 div2 D. Babaei and Birthday Cake(DP+离散化+线段树优化)
题目链接:http://codeforces.com/contest/629/problem/D题目大意:给n个圆柱体蛋糕,现在要堆一个大蛋糕,要求体积大的放在上面同时编号大的不能放在编号小的下面。问最大的体积是多少。范围;n思路:很容易想到:dp[i]=dp[j]+a[i](i>j&&a[i]>a[j])。所以就有了O(n^2)的算法,但是范围太大,会超时。原创 2016-02-27 19:00:24 · 578 阅读 · 0 评论 -
zjnu 1762 U(想法、线段树)
题目链接:http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1762题目大意:有n道菜,每道菜分别有两种价格A和B。如果要买k道菜,则除了第一道要花A的价格以外,其他的k-1道菜都以B的价格买下。现在要分别得到买1~n道菜要花的最少的钱。范围:n思路:钱要花最少,在买多道菜的时候我们自然是希望B的价格越小原创 2016-03-22 21:21:51 · 687 阅读 · 0 评论 -
POJ 2155 Matrix(二维树状数组)
题目链接:http://poj.org/problem?id=2155题目大意:给一个n*n的矩阵,有k个询问。询问分更新和询问操作。更新操作是对某个小的矩阵进行变换,里面的数(0变1,1变0)。#include#includeint c[1005][1005],n;int lowbit(int x){ return x&(-x);}void update(int原创 2016-03-04 21:48:41 · 418 阅读 · 0 评论 -
Light OJ 1188 Fast Queries(离线树状数组||莫队算法)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1188题目大意:给一串长为n的序列,然后有m个区间询问。要求得到询问区间范围内不同数的种类。范围:n思路:暴力肯定是行不通的了。对于这类问题,我们自然容易想到树状数组。在树状数组上存下不同数的种类实现在logn的复杂度内解决问题。但是要做一些处理,原创 2016-03-03 21:53:49 · 637 阅读 · 0 评论 -
Codeforces 622C Not Equal on a Segment(线段树)
题目链接:http://codeforces.com/contest/622/problem/C题目大意:给一个长为n 的序列,m个询问。每次询问一个区间[l,r]和数x。问这个区间里面任意一个不是x的数的位置。范围:n,m思路:可以考虑线段树。利用线段树维护区间上的最大值和最小值。每次询问时看当前区间上的最大和最小值是否与x不同,如果不同,就先往左子树看,如果左子原创 2016-02-16 20:25:00 · 716 阅读 · 0 评论 -
Codeforces #340 div2 E. XOR and Favorite Number(莫队算法)
题目链接:http://codeforces.com/contest/617/problem/E题目大意:有n 个数,m个询问。每次询问在区间[l,r]里面,有多少种情况使得ai^ai+1^……^aj=k。范围:1 ≤ n, m ≤ 100 000, 0 ≤ k ≤ 1 000 000。思路:对于这类区间上的问题,我们可以获得数组的异或前缀和pre[i]=a1^a2....原创 2016-02-12 13:49:08 · 507 阅读 · 0 评论 -
2015 南阳 CCPC hdu 5542 The Battle of Chibi(DP+树状数组优化+离散化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5542题目大意:给一段长为n的序列,现在要找出m个严格递增的数,问这样的找法有多少种。范围 :n思路:首先会往dp方面想,我们令f[i][j]表示前i个数字里面取了j个严格递增的数的找法。但是为了严格递增,我们可以规定这个f[i][j]的最后那个数就是a[i]。此时我原创 2015-11-18 20:09:37 · 801 阅读 · 0 评论 -
2014-2015 ACM-ICPC, Asia Tokyo Regional Contest G題 (线段树区间更新)
题目大意:给一个括号序列,刚开始一定是平衡的(也就是括号都匹配)。现在改变其中某一个括号,然后需要再改变一个括号(可以是自己)使得序列依旧保持平衡。问改变哪个括号可以达到目的,当然改变的括号越左边越好。思路:对于这个括号序列,我们可以将'('设为1,')'设为0,那么就能算出他们的前缀和。比如序列()(()),前缀和就是1,0,1,2,1,0。可以发现如果是平衡的序列,所有的前缀和原创 2015-11-09 13:00:12 · 745 阅读 · 0 评论 -
hdu5862Counting Intersections(树状数组)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5862题目大意:给一些与坐标轴平行的线段,问有多少个交点。题目保证线段不会有重合的端点。范围:n思路:根据题目的要求,我们可以知道交点一定是横线和竖线产生的。我们可以假设有一条扫描线从左往右扫过去。所以我们对于横线来说,遇到一个横线的左端点,就将他的y进行++原创 2016-08-22 18:03:17 · 737 阅读 · 0 评论