
——树状数组
FeBr2
(๑•̀ㅂ•́)و✧
展开
-
树状数组 ( 基础篇 )——敌兵布阵 ( HDU 1166 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1166 分析: 输入一堆数,范围小于50000,要求对其进行修改具体元素,区间求和两种操作。一看就是树状数组。 题解: 先来一发树状数组的基本模板:int TreeArray[40005],N; int lowbit(int i)//lowB操作!!! { return i & (-i);原创 2016-07-22 21:00:21 · 466 阅读 · 0 评论 -
树状数组+离散化——求大范围,大数数组的逆序数
模板转自网络(侵删) #include <iostream> #include <string.h> #include <algorithm> #include <stdio.h>using namespace std; const int N = 500005;struct Node { int v,order;//v为数字原来的值,order为数字原来的序号 };int n; int c原创 2016-07-28 20:12:19 · 441 阅读 · 0 评论 -
树状数组 ( 求逆序数 )——Bubble Sort ( HDU 5775 ) ( 2016 Multi-University Training Contest 4 1012 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5775 分析: 给出N个数,将这几个数进行题中所述的“冒泡排序”,求每个数在排序过程中(包括始末状态)所达到的坐标的最大差值。 题解: ①我们可以先求出每个数在排序过程中所能达到最靠后的位置 loc ,然后 loc - min ( 起始点,终止点 ) 就是要求的最大差值。②而每个点能移动到的最靠后原创 2016-07-28 20:05:45 · 495 阅读 · 0 评论 -
树状数组+离散化——HDU 5877 (2016 ACM/ICPC Asia Regional Dalian Online 1010)
题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5877 参考博客: http://blog.youkuaiyun.com/mymilkbottles/article/details/52497953 分析: 给出N个点,常数值K,给出数组A表示每个节点的值。 再给出N-1条有向边u->v。求有多少组weak pair < u, v >,即满足:原创 2016-09-11 11:41:10 · 525 阅读 · 0 评论 -
DP+树状数组——FZU 2236 第十四个目标
题目链接: http://acm.fzu.edu.cn/problem.php?pid=2236 题意:给出长度为N的数组,求一共有多少个严格递增子序列 分析:我们很容易想到动态规划来解这道题,设定 DP[i]DP[i] 为以第i个元素结尾的严格递增子序列的数量,那么 DP[i]=∑i−1j=1DP[j]where(A[j]<A[i])DP[i] = \sum_{j=1}^{i-1} DP[j] w原创 2017-03-19 13:43:15 · 467 阅读 · 0 评论 -
树状数组 or 归并树 —— HDU 4417
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:给出一个数组,每次查询区间 [li,ri][l_i,r_i] 内大于等于 hih_i 的数的个数 分析: 解法1:我们可以离线所有查询,然后把查询按照 hih_i从小到大排序,并且把原来的数组也从小到大排序,从第一个元素开始,判断是否满足当前查询的条件,满足在树状数组中给对应元素的原来位置赋原创 2017-04-29 12:45:24 · 444 阅读 · 0 评论