ACM_数据结构
一名码农、
。。
展开
-
HDU1166敌兵布阵(线段树单点更新)
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30071 Accepted Submission(s): 12891Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以原创 2013-10-07 09:51:30 · 693 阅读 · 0 评论 -
UVA 11992-多棵线段树
题意:给出一个R*C的矩阵,行数不超过20行,每行元素原创 2014-04-25 10:38:24 · 730 阅读 · 0 评论 -
数据结构上机题目--离散时间模拟(银行等待问题)
/************************************************************************** author:crazy_石头* algorithm:纯纯的模拟* date:2013/09/29* 程序功能:模拟银行等待时间....orz************************************************原创 2013-10-28 16:32:24 · 867 阅读 · 2 评论 -
数据结构上机题目--dijkstra
dijkstra:/************************************************************************** author:crazy_石头* algorithm:Dijkstra* date:2013/09/29* 程序功能:最短路* 算法流程:初始时,S中仅含有源。设u是G的某一个顶点,把从源到u且中间只经过S中顶点的路原创 2013-10-28 16:40:11 · 710 阅读 · 0 评论 -
树状数组小结--转自风神Blog
又做了几道树状数组的题,决定放一块儿总结一下;恩,总结一下。。(ps:大牛可以直接跳过。。。)这得从一张图说起;树状数组中用的d【】,每个点都有一定的管辖范围;如d[1]=a[1];d[2]=a[1]+a[2];d[3]=a[3];d[4]=a[1]+a[2]+a[3]+a[4];等等;这样的结构关键是为了,对一个转载 2013-12-04 20:17:28 · 1846 阅读 · 2 评论 -
HDU 4193单调队列
题意:给你一个n项的序列,每次可以把序列的首项移动到末尾,显然一共可以构成n种序列,问一共有多少种序列满足条件:序列的前i项和都大于等于0(i:1~n)。解题思路:开一个2*n的数组,后面n项复制前面n项。这样,每个长度为n的区间都代表一种序列。(这也是循环序列的一般做法吧),然后,数组中的值sum[i]记录前面i项的和(1~i)。这样,我们在考虑以k为起点的区间时原创 2013-10-31 22:21:46 · 735 阅读 · 0 评论 -
HDU 3415单调队列
这个题目属于常见题型,给定一组环状数列,求出其中长度不超过k的数字之和的最大值。。用到了前缀和的技巧,比如要求i,j间所有数字之和,可以提前在输入的时候计算出从0~i的数字之和及从0~j的数字之和,那么sum[i~j]=sum[j]-sum[i];现在的问题是求出最大的sum[i~j].那么我们可以固定sum[j]的值,当sum[i]最小时,整个式子值最大。。显然会用到单调递增队列,不断维原创 2013-11-03 01:19:11 · 629 阅读 · 0 评论 -
【转】vector向量容器 基本操作
vector向量容器:1.创建vector对象的三种形式:(1)不指定容器元素的个数 vector v;(2)创建时指定容器的大小 vector v(10);(3)指定大小并赋初值 vector v(10,0); 10个元素初值都是02.尾部元素扩张使用push_back()对vector容器在尾部追转载 2013-11-22 09:16:06 · 987 阅读 · 0 评论 -
POJ 2352(树状数组)
StarsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 28390 Accepted: 12440DescriptionAstronomers often examine star maps where stars are represented by po原创 2013-11-30 13:45:01 · 922 阅读 · 0 评论 -
士兵杀敌-线段树||RMQ
士兵杀敌(三)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号原创 2014-04-24 16:58:46 · 606 阅读 · 0 评论 -
HDU 1556(树状数组-区间修改,查询点)
Color the ballTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6752 Accepted Submission(s): 3534Problem DescriptionN个气球排成一排,从左原创 2013-12-04 20:14:28 · 772 阅读 · 0 评论 -
SGU 180-Inversions(树状数组离散化求逆序对数)
180. Inversionstime limit per test: 0.25 sec.memory limit per test: 4096 KBinput: standardoutput: standard There are N integers (1A[j].InputThe first line of the input contai原创 2014-01-17 22:28:03 · 1050 阅读 · 0 评论 -
BUAA 首A-简单树状数组(静态区间求和)
石子总数描述 测试说明与提交 提交状态 题目设置Description有N堆石头摆成一行,第i堆石头有a[i]个,现在我有m次询问,请问第s堆到第t堆的石头总数是多少Input多组测试数据,第一行为数据组数T(0对于每组测试数据,第一行输入两个整数n和m(1,n,m意义如上描述接下来一行n个整数,代原创 2013-12-05 00:49:55 · 1074 阅读 · 0 评论 -
数据结构上机题目3--学生信息排序
/************************************************************************** author:crazy_石头* algorithm:bubble_sort* date:2013/10/20* 程序功能:对学生信息进行排序************************************************原创 2013-10-28 16:22:42 · 773 阅读 · 0 评论 -
HDU1754(I hate it!--线段树单点更新,查找最大值)
I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27005 Accepted Submission(s): 10713Problem Description很多学校流行一种比较的习惯。老师们很原创 2013-10-07 09:41:57 · 657 阅读 · 0 评论 -
Codeforces 52C - Circular RMQ - 线段树
【题目大意】给出环形数列a_0,a_1,...,a_n-1。它有两种操作:inc(lf,rg,v)这个操作使[lf,rg]区间内的每一个值增加v;rmq(lf,rg)这个操作返回[lf,rg]区间内的最小值。假设区间是环形的,所以当n=5,lf=3,rg=1时,表示的序列编号为:3,4,0,1。请编写程序执行这一系列操作。【输入】第一行有一个整数n。第二行为数列的初原创 2013-11-05 01:04:09 · 1067 阅读 · 0 评论 -
RMQ的ST写法和线段树写法两种姿势
RMQ问题为求区间最值的问题 线段树可以在O(logN)的时间复杂度内完成询问操作。但是ST算法可以在常数时间内完成询问操作 ST算法:基于动态规划求区间最值的算法。分为预处理和查询两部分预处理:定义 F[i][j] 为从 i开始到 i+2^j-1 区间内的最值 , 我们可以讲这段2^j的区间分成两部分长度都为2^(j-1)的相同区间区间1 为 i.....i+2转载 2013-11-09 12:20:21 · 2119 阅读 · 0 评论 -
POJ 2828-(Buy Ticikets)--线段树单点更新
http://poj.org/problem?id=2828 /***************************** author:crazy_石头* date:2014/01/18* algorithm:线段树* Pro:POJ 2828***************************/#include #include #include原创 2014-01-23 10:20:34 · 696 阅读 · 0 评论 -
POJ3468A Simple Problem with Integers(线段树成段更新--Lazy标记)
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 46811 Accepted: 13727Case Time Limit: 2000MSDescriptionYou have N i原创 2013-10-06 23:47:46 · 712 阅读 · 0 评论 -
SBT模板-郁闷的出纳员(By Kuangbin)
拿来当模板,bin哥别生气哈== 人一我百,人十我万!追逐青春的梦想,怀着自信的心,永不放弃~~~~~~~ by kuangbin郁闷的出纳员 平衡二叉树(SBT)郁闷的出纳员Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit转载 2014-01-09 22:27:30 · 752 阅读 · 0 评论 -
HDU2795Billboard--线段树单点更新
BillboardTime Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7538 Accepted Submission(s): 3348Problem DescriptionAt the entrance to原创 2013-10-07 09:43:31 · 690 阅读 · 0 评论 -
笛卡尔树简介(分类到treap里面)
笛卡尔树结构由Vuillmin在解决范围搜索的几何数据结构问题时提出的,从数列中构造一棵笛卡尔树可以线性时间完成,需要采用基于栈的算法来找到在该数列中的所有最近小数。由此可知,笛卡尔树是一种特定的二叉树数据结构,可由数列构造,在范围最值查询、范围top k查询(range top k queries)等问题上有广泛应用。它具有堆的有序性,中序遍历可以输出原数列。目 录1原创 2013-11-22 00:27:47 · 2018 阅读 · 1 评论 -
数据结构上机题目--搜索
BFS邻接表。/************************************************************************** author:crazy_石头* algorithm:bfs* date:2013/09/29* 程序功能:bfs一个图**************************************************原创 2013-10-28 16:36:19 · 699 阅读 · 0 评论 -
HDU1251(统计难题)---Trie树简单应用
统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 13765 Accepted Submission(s): 5904Problem DescriptionIgnatius最近遇到一个难题,老师交给原创 2013-10-08 23:14:15 · 749 阅读 · 0 评论 -
Trie树入门题目--HDU1671 Phone List
Phone ListTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7265 Accepted Submission(s): 2501Problem DescriptionGiven a list of phone原创 2013-10-08 23:18:38 · 765 阅读 · 0 评论 -
POJ 3225-线段树求区间或集合的交并补、异或
Help with IntervalsTime Limit: 6000MS Memory Limit: 131072KTotal Submissions: 9208 Accepted: 2185Case Time Limit: 2000MSDescriptionLogLoader, Inc. is a co原创 2014-01-22 19:38:42 · 1236 阅读 · 0 评论 -
数据结构上机题目2--快排
#include #include #include #include using namespace std;void QuickSort(int l,int r,int b[]){ int i,j,x; if(l>=r)return ; i=l; j=r; x=b[i]; while(i!=j) { whi原创 2013-10-28 16:20:09 · 662 阅读 · 0 评论 -
并查集
中午做了几个简单的并查集。并查集简单的来说就是把几个独立的集合并起来的一种数据结构。可以按秩合并,也可以直接路径压缩。 先附上一个题集。并查集题集 我只切了4、5道,下面附上简单代码:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=37956#problem/F入门题了。把一些不相干的集合并起来,问原创 2014-01-16 11:37:59 · 861 阅读 · 0 评论 -
POJ2823Sliding Window--单调队列
关键字队列,合并果子,窗户,广告印刷,最长XX子序列,志愿者选拔,动态规划,烽火传递正文单调队列,望文生义,就是指队列中的元素是单调的。如:{a1,a2,a3,a4……an}满足a1序列便是单调递增序列。同理递减队列也是存在的。单调队列的出现可以简化问题,队首元素便是最大(小)值,这样,选取最大(小)值的复杂度便为o(1),由于队列的性质,每个元素入队一次,出队一次,维护队列的复杂原创 2013-10-31 19:54:25 · 823 阅读 · 0 评论 -
HDU 1698线段树成段更新
水。 #include #include #include #include using namespace std;const int maxn=100000;struct tree{ int l; int r; int sum;//用来标记当前是否被染成混合色;0表示是混合色,1不是;}T原创 2013-11-04 11:45:50 · 687 阅读 · 0 评论 -
POJ 3580-可持久化Treap
//这篇文章是看Nero哥的,。http://blog.csdn.net/hei_nero/article/details/11179251原创 2014-05-09 17:03:23 · 1945 阅读 · 0 评论 -
POJ 2761(Treap离线求区间第k大数)
网上有好多解法,我照着LRJ的白书敲了一个板子吧,3907ms过的,这题还可以SBT过,主席树也是可以过得。划分树不知道行不行,反正做法挺多。。T_T。原创 2014-05-08 17:25:41 · 1815 阅读 · 0 评论 -
POJ 1442-Treap(插入+区间第k大)
还是套板子直接求。原创 2014-05-08 19:07:27 · 985 阅读 · 0 评论 -
POJ1151-(线段树扫描线+离散化)求矩形面积并
http://www.cnblogs.com/fenshen371/p/3214092.html原创 2014-05-01 17:18:26 · 1136 阅读 · 0 评论 -
HDU1075(What are you talking about)--Trie树练习
What Are You Talking AboutTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/204800 K (Java/Others)Total Submission(s): 10686 Accepted Submission(s): 3411Problem Description原创 2013-10-08 23:11:54 · 750 阅读 · 0 评论 -
BUAA 702水题-哈夫曼(小顶堆或者优先队列解决)
柯南之合并描述测试说明与提交提交状态题目设置Description柯南发现一个果园,果园中每个果子都有一个记号,有些果子记号相同,于是柯南认为这些果子是犯人传递消息的工具,所以柯南把所有的果子打了下来,而且按果子的不同种类分成了不同的堆。调查完后柯南要把所有的果子合成一堆,送回果园。 每一次合并,柯南可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之原创 2013-12-05 23:41:10 · 964 阅读 · 0 评论 -
set基本用法
http://www.cnblogs.com/agpro/archive/2010/06/23/1763536.htmlSTL-set用法// 1.set::begin/end#include #include using namespace std;int main (){ int myints[] = {75,23,65,42,13,13}; setint> m转载 2013-11-07 22:42:10 · 755 阅读 · 0 评论 -
POJ 2528(市长的海报)线段树+离散化
其实就是线段树的一个水题,不过好久没写,加之第一次写离散化,出现各种细节错误,调到蛋碎。。。。。。QAQ /******************************* author :crazy_石头* data structure: 线段树+离散化* created time:2013/11/3 21:32* Pro:POJ 2528* J原创 2013-11-03 23:55:30 · 2288 阅读 · 0 评论 -
Splay学习--初篇
http://www.cnblogs.com/kernel_hcy/archive/2010/03/17/1688360.html 不错的splay讲解转载 2013-11-13 11:13:46 · 818 阅读 · 0 评论 -
教你弄懂二维树状数组~
当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一区间元素之和的时候,可以考虑使用树状数组. 通常对一维数组最直接的算法可以在O(1)时间内完成一次修改,但是需要O(n)时间来进行一次查询.而树状数组的修改和查询均可在O(log(n))的时间内完成. 一、回顾一维树状数组 假设一维数组为A[i](i=1,2,...n),则与它对应的树状数组C[i](i=1,2,..原创 2014-01-19 14:11:11 · 879 阅读 · 0 评论