
数据结构
文章平均质量分 80
n-1
这个作者很懒,什么都没留下…
展开
-
POJ 3237 Tree (树链剖分+线段树)
题目链接:POJ 3237 Tree题意:在树上有三种操作。CHANGE A B 1.将第A条边的值赋值为B;NEGATE A B 2.将A节点到B节点路径上的边变为其相反数。QUERY A B 3.访问A节点到B节点的路径上的边权最大。比较明显的树链剖分,主要是在线段树区间更新,取相反数可以得到,最大值和最小值取相反数后,再交换就是各自改变后的值。原创 2015-02-03 19:20:45 · 664 阅读 · 0 评论 -
HDU 5316 Magician (线段树)
题目链接:HDU 5316 Magician题意:给出n个数的序列,有两种操作:0 a b表示询问[a,b]区间中美丽子序列的最大和,1 a b 表示将a位置上的数修改为b。美丽子序列的定义是 在原来的序列中挑出几个数组成一个序列要求他们的下标(指的是在原序列中的下标)奇偶性不同。思路:用线段树维护一个区间中 奇奇,奇偶,偶奇,偶偶四种状态的最大和,其中(奇奇就表示区间两个原创 2015-07-30 10:31:29 · 802 阅读 · 0 评论 -
hihocode 1116 计算 (线段树)
题目链接:hihocode 1116 计算 中文题。(待解决)还没弄明白为什么PushUp()怎么计算,神奇#include #include #define LL long longconst LL kmod=10007;const LL maxn=100010;struct node{ LL l,r; LL sum,all; LL ls,rs; LL mi原创 2015-02-10 20:27:50 · 854 阅读 · 0 评论 -
HDU 5172 GTY's gay friends (预处理+线段树)
题目链接:HDU 5172 GTY's gay friends题意:给出一串序列,询问[l,r]区间里是否存在1~l-r+1的一个排列。思路:1~l-r+1的一个排列 等价于 [l,r]中元素互不相同且[l,r]区间和等于(1+len)*len/2(len=l-r+1)。区间和可以用前缀和来处理。元素互不相同,记录位置i上a[i]上次出现的位置记做pre[i],再用线段树来维护区间原创 2015-02-10 15:15:54 · 866 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers 线段树
POJ 3468 A Simple Problem with Integers题目链接:http://poj.org/problem?id=3468原创 2014-06-29 19:10:03 · 711 阅读 · 0 评论 -
ZOJ 2706 Thermal Death of the Universe (线段树)
题目链接:ZOJ 2706 Thermal Death of the Universe (线段树)题意:n个数,m个操作。每个操作(a,b)表示(a,b)所有值更新为这个区间的平均数:1.当前的数列总和小于等于原数列总和,取平均值的上界,反之,取下界。注意有负数的情况。AC代码:#include#include #define LL long long#d原创 2014-11-17 07:52:22 · 991 阅读 · 0 评论 -
POJ 3782 && HDU 3280 树状数组
题目链接:http://poj.org/problem?id=3782题意:原创 2014-06-26 20:56:04 · 910 阅读 · 1 评论 -
POJ 2299 Ultra-QuickSort (离散化+树状数组)
树状数组一个优美的数据结构原创 2014-08-06 15:29:52 · 721 阅读 · 0 评论 -
POJ 2763 Housewife Wind (树链剖分+线段树)
题目链接:POJ 2763 Housewife Wind题意:抽象出来就是 一棵已知节点之间的边权,两个操作,1·修改边权,2·询问两个节点之间的边权和。AC代码:#include #include #include using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<原创 2015-02-06 08:41:24 · 849 阅读 · 0 评论 -
5289 Assignment (RMQ+二分区间)
题目链接:5289 Assignment题意:给出n和K,表示有一串n个数的序列,存在多少个区间,该区间中任意两个数的差小于k思路:1.区间任意两个数的小于K 等价于 区间max-min2.最后暴力枚举区间必定要超时,发现随着区间的扩大max-min的值也在变大(非递减),有单调性就容易想到二分,所以是枚举左端点,二分找右端点。AC代码:#include#incl原创 2015-07-25 09:28:41 · 727 阅读 · 0 评论