
树状数组
文章平均质量分 87
詹明捷
此博客停止更新,迁移至www.zhanmingjie.com
展开
-
更改点后输出把集合里的点通过树的边连在一起所需要的最小代价 LCA+树状数组 HDU 5296 Annoying problem
给定一棵树以及q个询问。初始一个空的集合。两种询问,一种是往集合里添加一个点,一种是从集合里删除已经存在的点。对于每次询问,输出把集合里的点通过树的边连在一起所需要的最小代价(每条边都有权值原创 2015-08-24 18:20:13 · 1044 阅读 · 0 评论 -
区间素数个数 树状数组 HIT 1867 经理的烦恼
http://acm.hit.edu.cn/hoj/problem/view?id=1867经理的烦恼 Source : HCPC 2005 Spring Time limit : 2 sec Memory limit : 32 MSubmitted : 2994, Accepted原创 2015-08-29 22:35:16 · 1012 阅读 · 0 评论 -
求序列中满足Ai < Aj > Ak and i < j < k的组数 树状数组 HIT 2275 Number sequence
求序列中满足Ai < Aj > Ak and i < j < k的组数原创 2015-08-28 00:30:22 · 4110 阅读 · 0 评论 -
统计矩阵和 二维树状数组 SPOJ 1029 Matrix Summation
http://www.spoj.com/problems/MATSUM/MATSUM - Matrix Summationno tags A N × N matrix is filled with numbers. BuggyD is analyzing the matrix, and he wants the sum of certain subm原创 2015-09-01 13:40:11 · 916 阅读 · 0 评论 -
求子树中含有苹果的节点个数 时间戳+树状数组 poj 3321
给你一颗树,最初每个节点上都有一个苹果,有两种操作:修改(即修改某一个节点,修改时这一个节点苹果从有到无,或从无到有)和查询(查询某一个节点他的子树上有多少个苹果)原创 2015-09-01 17:44:21 · 706 阅读 · 0 评论 -
树状数组 公式推导 poj 1990 MooFest
题目给定n头牛的听力v[i]. 现在规定两头你i和j如果要进行交流的话那么消耗的能量就是dis(i,j)*max(v[i].v[j]),现在问n头牛总共的n*(n-1)*2种方式消耗的总的能量原创 2015-09-01 18:31:02 · 752 阅读 · 0 评论 -
二维树状数组 hdu 1892 See you~
题目给定4种操作: S x1 y1 x2 y2 询问以(x1 , y1) - (x2 , y2)为对角线的矩形的面积,但是这个对角线不一定是正对角线。A x1 y1 n 把点(x1 , y1)加上n。D x1 y1 n点(x1 , y1)减去n如果不足n就全部删除即可。M x1 y1 x2 y2 n 把点(x1 , y1)点值中扣除n加到(x2 , y2),如果不过n则把(x1 , y1)值全部加到(x2 , y2)原创 2015-09-01 23:13:19 · 531 阅读 · 0 评论 -
树状数组+公式推导 hdu 3015 Disharmony Trees
题目给定n棵树的横坐标和高度,然后给定横坐标排序后的rank_f已及树的高度排序后的rank_s,规定两颗树的FAR为abs(rank_f[i] , rank_f[j]) , SHORT为min(rank_s[i] . rank[_sj]),那么i和j的组合的值为FAR*SHORT,求所有组合方式的总和原创 2015-09-01 21:42:30 · 474 阅读 · 0 评论 -
三维三维三维树状数组模板题 hdu 3584 Cube
三维树状数组原创 2015-09-01 23:33:49 · 732 阅读 · 0 评论 -
01变换 二维树状数组+区间更新,单点查询 poj 2155 Matrix
点击打开poj 2155MatrixTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 21451 Accepted: 8017DescriptionGiven an N*N matrix A, whose elements are eit原创 2015-09-01 15:40:04 · 1049 阅读 · 0 评论 -
查询比a大的数中的第k大的数 树状数组 hdu 2852 KiKi's K-Number
题目给定三种操作: 0 x 表示把x插入容器 ; 1 x 表示删除一个x如果没有x则输出 No Elment! ; 2 a k 表示比a大的数中的第k大的数 如果没有输出No Find!原创 2015-09-01 23:05:18 · 696 阅读 · 0 评论 -
两边点连直线求交点总数 树状数组或线段树 poj 3067 Japan
http://poj.org/problem?id=3067JapanTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 23602 Accepted: 6369DescriptionJapan plans to welcome the原创 2015-08-27 23:20:08 · 995 阅读 · 0 评论 -
每次输出有几条线段能完全覆盖大于自己和hdu5372相反 树状数组或线段树 poj 2481 Cows
http://poj.org/problem?id=2481CowsTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 14762 Accepted: 4886DescriptionFarmer John's cows have dis原创 2015-08-27 22:48:21 · 739 阅读 · 0 评论 -
二维树状数组模板题 poj 1195 Mobile phones
给定一个矩阵和三种操作 1 a b x表示把[a,b]值加上x,2 L B R T表示L <= x <= R , B <= y <= T求这个小矩形的面积 3表示输入结束原创 2015-08-27 17:11:18 · 865 阅读 · 0 评论 -
当前插入的线段能完整覆盖存在的几条线段 树状数组 HDU 5372 Segment Game
每次插入一个线段,或删除一个已存在的线段,每次插入后输出当前插入的线段能完整覆盖存在的几条线段。原创 2015-08-23 17:46:52 · 1017 阅读 · 0 评论 -
树状数组的改段求段详解
以下是对于如何利用树状数组进行区间修改和区间查询的简介可以代替不需要lazy tag的线段树,且代码量和常数较小首先你需要学会树状数组,如果不会的话以下先讲解黑匣子使用树状数组的姿势首先定义一个数组 int c[N]; 并清空 memset(c, 0, sizeof c);1、单点修改 : c[x] += y; 对应的函数是 change(x, y);2、求原创 2015-08-24 21:13:12 · 618 阅读 · 0 评论 -
Codeforces 570D TREE REQUESTS dfs序+树状数组 异或
询问形如 (u, deep) 问u点的子树中,距离根的深度为deep的所有点的字母能否在任意排列后组成回文串,能输出Yes原创 2015-08-22 23:08:30 · 1038 阅读 · 0 评论 -
分析公式 Codeforces 528B Clique Problem
给定数轴上的n个点。下面n行每行两个数 xi, wi 表示点和点权。对于任意两个点u, v若dis(u,v) >= u_w+v_w 则这两个点间可以建一条边。(in other words 若两点间距离大于两点的权值和则可以建边)找一个最大团,输出这个最大团的点数。原创 2015-08-25 15:06:49 · 1138 阅读 · 0 评论 -
三元逆序对 求i<j<k && a[i]>a[j]>a[k] 的对数 树状数组Codeforces 61E Enemy is weak
http://codeforces.com/problemset/problem/61/EE. Enemy is weaktime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstan原创 2015-08-25 17:18:29 · 2779 阅读 · 0 评论 -
树状数组模拟3个元素的排序 Codeforces 12D Ball
http://codeforces.com/problemset/problem/12/dBalltime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputN l原创 2015-08-25 22:53:14 · 940 阅读 · 0 评论 -
树状数组学习资料1
1 一维树状数组 1 什么是树状数组 树状数组是一个查询和修改复杂度都为log(n)的数据结构,假设数组A[1..n],那么查询A[1]+...+A[n]的时,间是log级别的,而且是一个在线的数据结构。 2 树状数组作用 我们经常会遇到动态连续和查询问题,给定n个元素A[1~N],让我们求sum[L,R] = A[L]+...+A[R],或原创 2015-08-27 00:18:03 · 917 阅读 · 0 评论 -
归并排序,树状数组 两种方法求逆序对
我们知道,求逆序对最典型的方法就是树状数组,但是还有一种方法就是Merge_sort(),即归并排序。实际上归并排序的交换次数就是这个数组的逆序对个数,为什么呢?我们可以这样考虑:归并排序是将数列a[l,h]分成两半a[l,mid]和a[mid+1,h]分别进行归并排序,然后再将这两半合并起来。在合并的过程中(设la[j]时,在原创 2015-08-24 21:42:22 · 3596 阅读 · 1 评论 -
求左下角星星之和 树状数组或线段树 poj 2352 Stars
题目是要求出每一个点的左下(正左+正下)有几个星星,那个这个点就是第几层,最后输出0~n-1层的点的个数。比如样列编号为5的星星,左下有3个星星那么5就处于第三层原创 2015-08-27 16:47:05 · 892 阅读 · 0 评论 -
求果园中在t*s的矩阵里最多能有几棵柿子树 二维树状数组模板题 poj 2029 Get Many Persimmon Trees
给定一个人h*w的矩阵,给定n个点表示该点上面有柿子树,求给定一个t*s的矩阵的最多的柿子树的个数原创 2015-08-27 23:31:18 · 1026 阅读 · 0 评论 -
倒推序列,如b[i]0 1 0(前面有几个数比b[i] 大)推a[i]2 1 3 ,树状数组 SPOJ 227 Ordering the Soldiers
给定一个n个数的序列假设为b数组,那么b[i]表示的是i之前比第i个数大的个数,比如样例的2 1 3对应的b数组是0 1 0,现在要求a数组,已知a数组的值是1~n原创 2015-09-01 22:20:04 · 661 阅读 · 0 评论