WangMeow --- ᶘ ᵒᴥᵒᶅ ฅ^•ﻌ•^ฅ

欲穷算法千里目,更上编程一层楼!

排序:
默认
按更新时间
按访问量

[HDU] (3874) Necklace ---- 离线操作+树状数组

题目传送门 几乎完全一样的题目(区间内不同数的个数): 传送门 题意: 给你n个数,q次查询,问这个区间内,区间内数的和为多少,每个不同的数只能取一次。 做法: 莫队也可做,但是了解到树状数组也可以进行离线操作。 思路就是,记录相同数字中上一个数字出现的位置。 按照查询区间的右端点排序,从小到大...

2018-10-25 16:04:27

阅读数:16

评论数:0

Codeforces Round #333 (Div. 2) B. Approximating a Constant Range ---- 尺取+树状数组(区间最值)

题目传送门 做法:在尺取的过程中用树状数组查询区间最值。复杂度O(2*n*log^2(n)) AC代码: #include<bits/stdc++.h> #define IO ios_base::sync_with_stdio(...

2018-09-27 16:52:09

阅读数:20

评论数:0

[HDU](2852)KiKi's K-Number ---- 树状数组+二分★

题目传送门 做法: 类似于逆序数的思想,我们把元素值作为索引加入树状数组。我们再query(x) 所得到就是[1,x] 元素的个数,也相当于这个元素在这个无序序列中的权重。 举个栗子: a[1] = 27 a[2] = 31 a[3] = 15 a[4] = 28  for(int i=...

2018-09-18 18:13:00

阅读数:15

评论数:0

[POJ](1900)MooFest ---- 树状数组★

题目传送门 题意: 有n头牛在x轴上,每头牛具有两个属性,听力值vi和坐标xi,两头牛i,j沟通需要消耗 max(vi,vj) * abs(xi-xj) 现在问你所有任意两头牛所需要消耗的总值,共n*(n-1)/2种 做法: 首先暴力肯定是不行滴~ 我们为了优化计算,我们可以先根据牛的听...

2018-09-18 09:29:12

阅读数:37

评论数:0

[POJ](2309)BST ---- 树状数组lowbit

题目传送门 做法:其实还是从题目中给的这棵二叉搜索树找规律,我们发现最小的其实就是 x-lowbit(x)+1,即树状数组中x位置所维护的区间的左端点,接机推出最大即x+lowbit(x)-1; AC代码: #include <iostream>...

2018-09-17 19:28:36

阅读数:22

评论数:0

[POJ](3321)Apple Tree ---- 树形结构转线性区间+树状数组

题目传送门 做法: 这个题可以作为树状数组的好题了~ 难点不在于树状数组,而在于转换问题。 数据结构不熟,看了其他人的博客,才知道可以通过先序遍历这棵树,进行转换。 比如我现在建立一棵树: 1 ---- 2 1 ---- 3 2 ---- 4 2 ---- 5 4 ---- 6...

2018-09-17 15:39:28

阅读数:27

评论数:0

[POJ](2352)Stars ---- 树状数组

题目链接 做法:题目已经向你保证,输入的x,y中,y递增,如果y相同,x递增。酱紫其实已经帮助我们处理好了它们的优先级。 因为y越大,x越大的优先级越高。所以我们直接用x的值进行区间的查询。query(x)就是找<=x位置的元素有多少个。 AC代码: #includ...

2018-09-15 11:10:20

阅读数:16

评论数:0

【ACM-ICPC 2018 徐州赛区网络预赛】H题 Ryuji doesn't want to study ---- 树状数组

题目链接 做法: 我们知道我们想要的答案的式子中,相邻两项的系数差1,所以我们构造出类似这样的情况 如下图所示    n*a1         (n-1)*a2     (n-2)*a3    (n-3)*a4    (n-4)*a5   (n-5)*a6     (n-6)*a7   ...

2018-09-11 21:10:15

阅读数:26

评论数:0

[洛谷](P3372)【模板】线段树 1 ---- 树状数组解法

题目链接 复习:树状数组的区间修改和区间查询~ 理解区间修改,单点查询后这个就很容易理解啦~ 原理:超级树状数组 AC代码: #include<bits/stdc++.h> #define IO ios_base::sync_...

2018-09-09 11:51:14

阅读数:43

评论数:0

[洛谷](P3368)【模板】树状数组 2

题目链接 复习树状数组,区间修改,单点查询 #include<bits/stdc++.h> #define IO ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define...

2018-09-08 19:38:02

阅读数:21

评论数:0

[HDU](1754)I Hate It ---- 树状数组(区间最值问题)

题目链接 复习:线段树功能很强大,但是敲起来不如树状数组简洁(但是但是线段树仍然赛高(`・ω・´))。所以这次复习下树状数组的区间最值写法。原理类似区间求和,单点修改。 有一个博主写的博客不错,之前也是学习的他的。安利下,自己就不写教程了,这里练下手,复习下~ 【树状数组求区间最大值】 A...

2018-09-07 22:00:09

阅读数:25

评论数:0

[51Nod](1019)逆序数 ---- 树状数组+离散化★

题目链接 做法: 复习一下树状数组~ 首先直接暴力求的话,O(n^2) 一定会超时。(`・ω・´) 为什么有时这句话总出现在博文呢?因为提醒自己有时不要瞎暴力 利用树状数组求逆序数是非常经典的一种写法,下面说一下我自己的理解 利用树状数组的特点,单点修改和区间查询的特性。 1.对于每一...

2018-09-05 21:32:54

阅读数:17

评论数:0

[51Nod](1081)子段求和 ---- 树状数组

给出一个长度为N的数组,进行Q次查询,查询从第i个元素开始长度为l的子段所有元素之和。 例如,1 3 7 9 -1,查询第2个元素开始长度为3的子段和,1 {3 7 9} -1。3 + 7 + 9 = 19,输出19。 Input 第1行:一个数N,N为数组的长度(2 &...

2018-04-12 17:39:06

阅读数:21

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭