E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
——树状数组
BZOJ 1878 HH的项链(
树状数组
)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1878 题意:给出一个数列,每次询问区间[L,R]中有多少个不同的数字? 思路: (1)记录每个位置i的数字的前一个相同数字出现的位置pre[i],没有前一个相同的pre[i]为0。 (2)询问按照R升序。 (3)开始计算:枚举i从1到m(m为询问个数),对于某个位置x,将pre
·
2015-11-11 03:36
树状数组
BZOJ 1452 Count(二维
树状数组
)
思路:二维
树状数组
的操作看起来跟一维的差不多,只是循环改为两重而已。主要操作有:(1)增加某个位置的值;(2)询问[1,1,x,y]子矩阵
·
2015-11-11 03:35
count
CF 314C Sereja and Subsequences(
树状数组
)
题目链接:http://codeforces.com/problemset/problem/314/C 题意:给定一个数列a。(1)写出a的不同的所有非下降子列;(2)定义某个子列的f值为数列中各个数的乘积。(3)求所有非下降子列的f值之和。 思路:我们用s[i]表示以数字a[i]结尾的所有非下降子列的f之和。那么a必然是接在之前小于等于a的某个数之后,设这个位置为j,那么s[i]=(s[j]
·
2015-11-11 03:33
sequence
BZOJ 2727 双十字(
树状数组
)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2727 题意: 思路:思路来自这里。首先对于每个位置(i,j)用C[i][j]表示该位置同时向左右能延伸的最大长度,用down[i][j]表示向下能延伸的最大长度(其实这里可以用一维的)。然后就是统计。我们一列一列枚举。对于每一列,一行一行来。每次到达一行,(i,k
·
2015-11-11 03:31
树状数组
BZOJ 3224 普通平衡树(
树状数组
)
只删除一个)(3)查询x的排名(若有多个相同的数,输出最小的排名)(4)查询排名为x的数(5)求x的前驱(前驱定义为小于x,且最大的数)(6)求x的后继(后继定义为大于x,且最小的数) 思路:主要用到使用
树状数组
·
2015-11-11 03:31
树状数组
BZOJ 3192 删除物品(
树状数组
)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3192 题意:(1)一共有N个物品,堆成M堆。 (2)所有物品都是一样的,但是它们有不同的优先级。(3)你只能够移动某堆中位于顶端的物品。(4)你可以把任意一堆中位于顶端的物品移动到其它某堆的顶端。若此物品是当前所有物品中优先级最高的,可以直接将之删除而不用移动。(5)求出
·
2015-11-11 03:30
树状数组
HDU 1941 Hide and Seek(离散化+
树状数组
)
一个一个插入到
树状数组
中
·
2015-11-11 03:29
树状数组
SGU 263 Towers(
树状数组
)
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=263 题意:一排位置,开始全为0.若一段区间[L,R]之间均大于0且L-1和R+1均为0,我们说[L,R]为一段。两种改变,四种询问。改变是:(1)将第x个位置增加y;(2)将第t段的第x个位置增加y。四种询问是:(1)段的个数;(2)第t段中的所有数之和;(3)第t段的区间长度;
·
2015-11-11 03:52
树状数组
BUAA 436 孟竹的复习计划(二维
树状数组
)
思路:二维
树状数组
可以快速计算0<=i<=x,0<=j<=y内的数字之和。 int a[10005],c[105][10005]; int n,m,ans,
·
2015-11-11 03:45
树状数组
codeforces 261D Maxim and Increasing Subsequence(
树状数组
优化最长上升子列)
思路:
树状数组
优化求最长上升子列。
·
2015-11-11 03:33
codeforces
SGU 128 Snake(
树状数组
+并查集)
这个用
树状数组
。对于每一对顶点记录上下关系和左右关系。对于一对点的下面那
·
2015-11-11 03:26
树状数组
poj 3321
树状数组
+DFS+队列转换 这题纠结了2天,一开始一点思路都没有,看大神都是吧
树状数组
转换成队列来做 看了好久都不知道怎么转换的, 解决方法:用两个队列,一个是以记录(s,u),s为起点,一个记录
·
2015-11-11 03:05
poj
poj3928 Ping pong
树状数组
http://poj.org/problem?id=3928 Ping pong Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2087 Accepted: 798 Description N(3<=N<
·
2015-11-11 03:32
ping
poj 1195 Mobile phones (二维
树状数组
)
1 /* 2 题意 : 3 改变矩阵中元素值 ,求子矩阵的和 4 二维
树状数组
, 5 */ 6 7 #include<stdio.h> 8 #define
·
2015-11-11 01:43
mobile
hdu 1166 敌兵布阵 (
树状数组
)
1 #include<stdio.h> 2 #include<string.h> 3 #define N 600000 4 int n; 5 int a[N],c[N]; 6 int lowbit(int x) 7 { 8 return x&(-x); 9 } 10 int sum(int k) 11 { 12
·
2015-11-11 01:42
树状数组
树状数组
讲解
1 概述 2 3
树状数组
是一个查询和修改复杂度都为log(n)的数据结构,假设数组a[1..n], 用lowbit函数维护了一个树的结构那么查询a[1]+...
·
2015-11-11 01:41
树状数组
二分+RMQ/双端队列/尺取法 HDOJ 5289 Assignment
题目传送门 1 /* 2 题意:问有几个区间最大值-最小值 < k 3 解法1:枚举左端点,二分右端点,用RMQ(或
树状数组
)求区间最值,O(nlog(n))复杂度
·
2015-11-11 01:51
sign
HDU 4358 Boring Counting ★★(2012 Multi-University Training Contest 6)
思路: 题解说的用
树状数组
,这里当然也可以用线段树维护,和上面一样,线段树第j个数表示区
·
2015-11-11 00:59
count
HDU 4358 Boring Counting ★★(2012 Multi-University Training Contest 6)
思路: 题解说的用
树状数组
,这里当然也可以用线段树维护,和上面一样,
·
2015-11-11 00:58
count
HDU 4358 Boring Counting ★★(2012 Multi-University Training Contest 6)
思路: 题解说的用
树状数组
,这里当然也可以用线段树维护,和上面一样,线段树第j个数表示区
·
2015-11-11 00:58
count
NYOJ 士兵杀敌(一)
树状数组
和 非
树状数组
两种AC方式总结
因为是临时准备参加省赛,队友都使用c++,所以我也必须使用c++,一直以来我都是java编码更顺手,c++大量的编码实践还是缺乏的,所以这正是一个磨练的机会,果断上去。 该题目有两种做法,我看到题目的时候只想到一种,没有想到第二种,后来同队的人说有第二种,让我到网上看,后深入的看了网友们不同的做法和见解,才了解到还有第二种。 做这个题目的时候发现两个问题,第一cin、cou
·
2015-11-11 00:58
树状数组
树状数组
:解决比某个数小的数的出现次数
1 //输入一串n个数字,然后进行m次询问 2 //每次询问中询问一个在上述数字串出现过的一个数,问比这个数字小的数字有几个 3 //出现的重复的数字当作一个数字处理 4 //n<=1000000, m<=100000 5 6 // sample input: 7 // 11 8 // 4 5 5 8 9 1 0 0 100 99 45 9 /
·
2015-11-11 00:52
树状数组
树状数组
(二叉索引树 BIT Fenwick树) *【一维基础模板】(查询区间和+修改更新)
lt;string.h> #include <stdlib.h> #include <algorithm> using namespace std; //一维
树状数组
基础模板
·
2015-11-11 00:44
树状数组
POJ 1195 2维线段树(树套树实现)
树状数组
1: #include <stdio.h> 2: #include <string.h> 3: #include <stdlib.h> 4: #include <algorithm> 5: #include <iostream> 6: using namespace std;
·
2015-11-10 23:35
树状数组
HDU---4417Super Mario
树状数组
离线操作
对于某一次查询 把所有比x小的数 ”的位置“ 都加入到
树状数组
中,然后sum(R)-sum(L-1)就是答案,q次查询就要离线操作了,按高度排序。
·
2015-11-10 22:09
super
HLG 1400 汽车比赛
m=ProblemSet&a=showProblem&problem_id=1400 结构体排序+
树状数组
模板..
·
2015-11-10 22:49
400
POJ 2299 Ultra-QuickSort
id=2299 用了
树状数组
,求逆序数。
·
2015-11-10 22:47
Quicksort
SGU128 Snake
然后通过搜索判断是否连通,最后再借助
树状数组
判断是否有自交的情况(”+”这种自交形状)出现。 PS:
·
2015-11-10 21:06
a
重温 匈牙利算法
树状数组
再次回忆匈牙利算法和
树状数组
,除了算法的大概思路,其他已经不记得什么了。
·
2015-11-10 21:05
树状数组
hdu 5517 Triple(二维
树状数组
)
HDU5517题目:给出一种有三个元素的顺序,这个数据定义一种偏序,当且仅当一个三元数的所有元素都大于等于另一个时这个数比另一个大.求这个一个集合中不比任何数小的三元数有多少个.思路:首先排序去重,此时第一维有序,不用考虑,然后只有不存在比当前数的另外两维都大的数时当前数是可选的,用二位树装数组维护这个信息即可./* *@author:Cwind */ #include usingna
PlusSeven
·
2015-11-10 19:00
nyoj 士兵杀敌(四) 123 (线段树&&
树状数组
) 更新区间值求特定位置的值
士兵杀敌(四)时间限制:2000ms | 内存限制:65535KB难度:5描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是在南将军询问他某个人的
yanghui07216
·
2015-11-10 16:00
二维
树状数组
回顾一维
树状数组
初始化、求和c1=a1;c2=a1+a2;c3=a3;c4=a1+a2+a3+a4;c5=a5;c6=a5+a6;……C16=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10
sun897949163
·
2015-11-10 16:00
树状数组
树状数组
初步
对此我们引入
树状数组
。上图先找规律c1=a1;c2=a1+a2;c3=a3;c4=a1+a2+a3+a4;c5=a5
sun897949163
·
2015-11-10 07:00
树状数组
HDU 5497 Inversion(
树状数组
)
树状数组
好题。
weizhuwyzc000
·
2015-11-09 22:00
HDU
树状数组
ACM-ICPC
scu 2057
树状数组
单点更新区间求和问题
做法:单点更新,区间求和问题,利用
树状数组
实现。不过我还是比较习惯线段树,但是这题线段树太诡异。。只能放弃治疗。刚好复习一下
树状数组
吧。。对于修改操作,如果修改后和原来
liujc_
·
2015-11-09 15:00
HDU 4777 Rabbit Kingdom(
树状数组
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4777 题意:给出一个长度为n的数列,m个询问。每次询问区间[L,R]内有多少个数字与该区间内其他所有数字互质? 思路:计算每个数字向左向右能够延伸的最大区间[L,R]使得该区间内所有数字与该数字互质。并记录对于每个位置x,哪些数字的最左侧到达了x+1。然后输入所有询问,按照左区间升序。将每个区间依
·
2015-11-09 14:47
树状数组
acdream 1019 Palindrome(哈希)
具体方法是用上
树状数组
进行快速统计。 #include <iostream> #include <stdi
·
2015-11-09 14:51
ROM
Matrix+POJ+二维
树状数组
初步
&n
·
2015-11-09 13:07
Matrix
【树转数组】poj1195
/* 二维的
树状数组
: 更新某个元素时: NO.1:c[n1],c[n2],c[n3],....,c[nm]; 当中n1 = i,n(i+1) = ni+lowbit(ni); nm+lowbit(nm
·
2015-11-09 13:19
poj
13年山东省赛 Boring Counting(离线
树状数组
or主席树+二分or划分树+二分)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud 2224: Boring Counting Time Limit: 3 Sec Memory Limit: 1
·
2015-11-09 13:58
count
[BZOJ 2568]比特集合
位 <=num 的数的个数 查询第 k 位为 1 即询问 C[k][(1<<k+1)-1]-C[k][(1<<k)-1] 的值 因为要支持插入、删除,C 数组应使用
树状数组
或线段树来维护
·
2015-11-09 13:20
ZOJ
树状数组
基本模板
树状数组
可以很方便地实现数组的动态修改求和,并且代码量非常小!
·
2015-11-09 12:17
树状数组
hdu1081 DP类最大子段和(二维压缩+前缀和数组/
树状数组
计数)
题意:给出一个 n * n 的数字矩阵,问最大子矩阵和是多少。 由于和最长子段和问题类似,一开始想到的就是 DP ,一开始我准备用两个循环进行 DP ,对于每一个 (i,j) ,考察(i - 1,j)与(i,j - 1), dp 值代表以该点为右下角的最大矩阵和,同时记录下这个矩阵的左上角坐标,状态转移时通过将原和最大矩阵通过补边推到当前和最大矩阵。但是其实这种做法有一个明显的问题,就是转移时,
·
2015-11-09 12:05
树状数组
N.O.W,O.R,N.E.V.E.R--12days to LNOI2015
带权并查集 hash 表 双hash
树状数组
·
2015-11-09 12:01
ln
树状数组
(Binary Indexed Trees )论文解析
By boba5551TopCoder Member Introduction We often need some sort of data structure to make our algorithms faster. In this article we willdiscuss the Binary Indexed Trees structure. Acc
·
2015-11-09 11:01
binary
Uva - 1513 Moive collection ( 模拟栈 +
树状数组
基本操作 )
Uva - 1513 Moive collection ( 模拟栈 +
树状数组
基本操作 ) 题意: 一个书架,原来所有的书都是按顺序摆好的,书的编号从1开始到n
·
2015-11-08 16:14
Collection
HDU - 5032 Always Cook Mushroom(极角排序 +
树状数组
离线操作)
HDU - 5032 Always Cook Mushroom(极角排序 +
树状数组
离线操作) 网络赛的一题,没有看过题目,看了郏老大博客来A这题。
·
2015-11-08 16:13
树状数组
HDU 4417 Super Mario ( 超级马里奥 + 主席树 + 线段树/
树状数组
离线处理 + 划分树 )
HDU 4417 - Super Mario ( 主席树 + 线段树/
树状数组
离线处理 + 划分树 ) 这道题有很多种做法,我先学习的是主席树。
·
2015-11-08 16:09
super
HDU 4638 Group ★(
树状数组
)
题意 询问一段区间里的数能组成多少段连续的数。 思路 先考虑从左往右一个数一个数添加,考虑当前添加了i - 1个数的答案是x,那么可以看出添加完i个数后的答案是根据a[i]-1和a[i]+1是否已经添加而定的:如果a[i]-1或者a[i]+1已经添加一个,则段数不变,如果都没添加则段数加1,如果都添加了则段数减1。设v[i]为加入第i个数后的改变量,那么加到第x数时的段数就是sum{v[i]} (
·
2015-11-08 16:05
group
HDU 4638 Group ★(
树状数组
)
题意 询问一段区间里的数能组成多少段连续的数。 思路 先考虑从左往右一个数一个数添加,考虑当前添加了i - 1个数的答案是x,那么可以看出添加完i个数后的答案是根据a[i]-1和a[i]+1是否已经添加而定的:如果a[i]-1或者a[i]+1已经添加一个,则段数不变,如果都没添加则段数加1,如果都添加了则段数减1。设v[i]为加入第i个数后的改变量,那么加到第x数时的段数就是sum{v[i]} (
·
2015-11-08 16:52
group
上一页
80
81
82
83
84
85
86
87
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他