1、数据结构
文章平均质量分 66
童凌
当你停下来休息的时候,不要忘记别人还在奔跑!——一个普通的软件工程专业学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[线段树] POJ 3468 A Simple Problem with Integers
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 58564 Accepted: 17839Case Time Limit: 2000MSDescriptionYou have N i原创 2014-07-20 11:38:08 · 662 阅读 · 0 评论 -
[数据结构]树状数组
树状数组是一种非常优雅的数据结构,当需要频繁地对数组元素进行修改,同时又要频繁地查询数组在任一区间元素之和的时候,可以考虑使用树状数组。换句话说,树状数组(Binary Indexed Tree)是能够完成下属操作的数据结构。 对一个数列a[1…n]: 1、求和:给定i,计算a1+a2+a3…+an 2、修改某一元素的值:给定i和x,执行a[i] += x复杂度: 树状数组的修改和查询均可在原创 2015-07-14 10:22:21 · 883 阅读 · 0 评论 -
[数据结构]RMQ算法
记得不久以前,我认真练习过的第一个数据结构是线段树,当时做了很多题目,poj3468,hdu1166等等。看着模板敲线段树的感觉其实很不错,但是有一个问题:虽然线段树能高效做很多关于区间查询,区间更新的问题,但是架不住代码量太大......解题时,一定得想清楚每个节点要存哪些信息,以及这些信息如何高效更新,维护,查询。不要一更新就涉及到叶子节点,否则写线段树的代码根本就没有意义了......听原创 2015-07-13 15:41:42 · 557 阅读 · 0 评论 -
[并查集] hdu1325 Is it a tree ?
A tree is a well-known data structure that is either empty (null, void, nothing) or is a set of one or more nodes connected by directed edges between nodes satisfying the following properties. There is原创 2015-07-31 21:01:38 · 560 阅读 · 0 评论 -
STL in C++ 概述
STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的Sort()函数是完全通用的,你可以用它来操作几乎所有的数据集合,包括数组。要点: STL算法作为模板函数提供。为了和其他组件相区别,在本文中STL算法后接一堆圆括号的形式表示,例如Sort()。STL的另一个重要特性是,它不是面向对象的。为了具有足够的通用性,STL主要依赖于原创 2015-07-10 19:59:12 · 739 阅读 · 0 评论 -
STL 顺序容器基本操作 与 队列用法
关于队列的操作详细用法:定义一个queue的变量 queue que 查看是否为空范例 que.empty() 是的话返回1,不是返回0;从已有元素后面增加元素(入队) que.push() 现有元素的个数原创 2014-05-23 20:26:13 · 1310 阅读 · 0 评论 -
[线段树]深入理解:线段树的构建和分解方法
如果还不了解基本的线段树,请点击这里查看。——线段树的构造,实际上是利用了二分的方法。每次在构造相应区间时,需要按照二分的规则来继续分解,并构造区间内的子区间,存成一个新的节点,并以此保留新的信息。构造整棵线段树时,需要把每个节点分解,直到所有的节点长度缩减为1时才可以停止。——线段树的分解,遵循的规则和线段树的构造是类似的。不同之处在于:分解的规则就是:如果有某个节点的区原创 2015-07-16 08:28:56 · 3137 阅读 · 0 评论 -
C++ STL 初探
"什么是STL?",假如你对STL还知之甚少,那么我想,你一定很想知道这个问题的答案,坦率地讲,要指望用短短数言将这个问题阐述清楚,也决非易事。因此,如果你在看完本节之后还是觉得似懂非懂,大可不必着急,在阅读了后续内容之后,相信你对STL的认识,将会愈加清晰、准确和完整。不过,上述这番话听起来是否有点像是在为自己糟糕的表达能力开脱罪责呢?:)原创 2014-05-22 23:10:32 · 736 阅读 · 0 评论 -
集训日志(一)线段树
线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 实际上还是称为区间树原创 2014-07-17 11:14:50 · 1528 阅读 · 0 评论 -
[优先队列]HDU 4544 湫湫系列故事——消灭兔子
湫湫系列故事——消灭兔子Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 138 Accepted Submission(s): 49Problem Description 湫湫减肥 越减越肥! 最近,减肥失原创 2015-08-03 17:51:19 · 498 阅读 · 0 评论 -
[STL][multiset] hdu4268 Alice and Bob
Alice and BobTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 559 Accepted Submission(s): 224Problem Description Alice and Bob’s game never原创 2015-08-03 22:11:10 · 477 阅读 · 0 评论 -
[贪心+优先队列] hdu5360多校联合 第六场 Hiking
http://acm.hdu.edu.cn/showproblem.php?pid=5360贪心的思路还是比较好想的,每次选择cur(已经邀请成功的人数)所在的区间中右端点最小的(因为右端点大的在后面可以邀请成功的几率大),然后很自然的想到可以用一个优先队列来维护这些区间,只要每次把左端点小于等于cur的区间放到优先队列中即可。#include<cstdio>#include<cstring>#原创 2015-08-07 10:15:12 · 532 阅读 · 0 评论 -
[数据结构]后缀数组
后缀数组是一个处理字符串的有力工具,对于常见的字符串匹配、模式匹配,求子串前缀等问题,后缀数组都有很好的效果。但是好难懂啊。。搜了国家集训队的论文,看了挑战书上的介绍,看了好长时间才稍微有一点感觉。。就20多行的代码看了N久才理解…大概是我太弱了。根据论文先来总结一下后缀数组的主要内容吧。1、基本定义 子串:字符串S的子串r[i…j],i≤j,表示r串中从i到j这一段形成的字符串。 后缀:后缀是原创 2015-08-08 15:26:27 · 651 阅读 · 0 评论 -
[水题] hdu 5349 MZL's simple problem
MZL’s simple problemTime Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 717 Accepted Submission(s): 348Problem Description A simple problem Pr原创 2015-08-05 13:35:43 · 632 阅读 · 0 评论 -
[树状数组&线段树]HDU3874 Necklace 离线思想
Problem Description Mery has a beautiful necklace. The necklace is made up of N magic balls. Each ball has a beautiful value. The balls with the same beautiful value look the same, so if two or more b原创 2015-07-24 16:15:17 · 621 阅读 · 0 评论 -
[优先队列] HDU4006 The kth great number
The kth great numberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 8119 Accepted Submission(s): 3216Problem DescriptionXiao原创 2015-07-16 17:37:22 · 477 阅读 · 0 评论 -
并查集-HDU1232
并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成原创 2015-05-08 23:36:14 · 875 阅读 · 0 评论 -
[优先队列] POJ2010 Moo University - Financial Aid
题意:奶牛学校招生,c头奶牛报名,要选n头(n为奇数),学校是义务制,所以每头奶牛的学费都由学校负责。每头奶牛都由自己的考试分数和它需要花的学费,学校总共有f的资金,问合法招生方案中中间分数(即排名第(n+1)/2)最高的是多少。题解:先将所有的奶牛按照分数由高到低排序,假设k是招的奶牛中排名中间的那头,按照排序可知,[1,k-1]中的奶牛必定被招了(n-1)/2头,[k+1,c]中也必定被招了(n原创 2015-08-17 20:37:45 · 516 阅读 · 0 评论 -
[线段树] POJ 3264 balanced lineup
Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 33267 Accepted: 15615Case Time Limit: 2000MSDescriptionFor the daily milking, Farme原创 2014-07-19 18:42:37 · 636 阅读 · 0 评论 -
STL-map小结
每次比赛的时候,总会出现一两个让我头晕眼花的数据对应题……每次都感叹:要是有一种数据结构可以完美地表现数据对字符串,字符串对字符串,数据对数据的表示就好了!于是map出现了。在那一段光辉的岁月中,我天天用着map,享受它给我带来的快乐。直到有一天我忘记了怎么使用它。事到如今,几个月以后的比赛在即,把这个必杀技重新捡起来,是我必做的事!原创 2015-05-08 14:00:26 · 764 阅读 · 0 评论 -
想快速搞定字符串类题目?使用C++的标准库string类
标准库类型string表示可变长的字符序列,原创 2014-04-28 13:35:47 · 1317 阅读 · 0 评论 -
[并查集]poj2236 Wireless Network
Wireless NetworkTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 18548 Accepted: 7837DescriptionAn earthquake takes place in Southeast Asia. The ACM (原创 2015-07-20 14:16:54 · 626 阅读 · 0 评论 -
[树状数组&线段树]HDU 2492 ping pong
/** * 一条大街上有n个乒乓球爱好者,经常组织比赛,每个人都有一个排名, * 每场比赛需要3个人,两名选手和一名裁判。规定裁判位置必须在选手中 * 间,排名也必须在两个选手的中间,问一共能组织多少场比赛 * * 裁判位置在两个选手中间,而且排名也要在选手中间,那么有两种情况 * 左<裁判<右 或者 右>裁判>左 * 当第i个人当裁判时,假设 a[i] 的左原创 2015-07-24 20:08:58 · 646 阅读 · 0 评论 -
[并查集]How Many Tables
X - How Many Tables Time Limit:1000MS Memory Limit:32768KB Description Today is Ignatius’ birthday. He invites a lot of friends. Now it’s dinner time. Ignatius wants to know how many tables h原创 2015-07-13 10:05:13 · 555 阅读 · 0 评论 -
[线段树] poj2823 Sliding Window
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 46075 Accepted: 13317 Case Time Limit: 5000MS DescriptionAn array of size n ≤ 106 is given to you. There is a s原创 2015-07-22 21:07:34 · 588 阅读 · 0 评论 -
[并查集] poj1703 Find them,Catch them
Find them, Catch themTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 36063 Accepted: 11051DescriptionThe police office in Tadu City decides to say ends原创 2015-07-20 15:13:06 · 590 阅读 · 0 评论 -
[线段树] 1127 敌兵布阵
1127: 敌兵布阵DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,原创 2014-07-19 20:55:02 · 572 阅读 · 0 评论 -
[树状数组]HDU1556 Color the ball
G - Color the ball Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Description N个气球排成一排,从左到右依次编号为1,2,3….N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽”牌电动车从气球a开始到气球b原创 2015-07-22 22:11:25 · 601 阅读 · 0 评论 -
[树状数组] HDU 1166 敌兵布阵
如果不了解基础的树状数组,请点击这里查看树状数组的基本内容。Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生原创 2015-07-15 10:35:05 · 604 阅读 · 0 评论 -
[RMQ+二分] 2015多校联合第一场 Assignment
AssignmentTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1626 Accepted Submission(s): 388Problem Description Tom owns a company and he原创 2015-07-22 15:24:53 · 497 阅读 · 0 评论 -
[难]hihocoder 线段树 毁灭者问题
如果对线段树还不熟悉的,请点这里了解原创 2014-07-17 11:36:32 · 3883 阅读 · 4 评论 -
[数据结构] Set的基本用法
STL这个东西有时候会出乎寻常地好用,特别是出到的题目数据类型刚好符合题目的要求时。一般来说一些常用的vector,queue都有固定的用法,了解一下它们的性质,对解一些数据结构题很有帮助。STL需要头文件#include<set>包含基本集合类set和可重复集合类multiset,不同之处在于set里面不能存储重复的数据,multiset可以存储重复的数据。 set另外的一个神奇之处在于,一旦将原创 2015-07-31 13:59:41 · 3571 阅读 · 0 评论 -
[线段树] poj3468 A Simple Problem with Integers
重新把以前的线段树内容写了一遍~~ 线段树还要继续加强~~ 具体的分析可以看这里~ poj3468题解#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int INF = 0x3f3f3f3f原创 2015-07-29 14:58:33 · 438 阅读 · 0 评论 -
[字典树]hihocoder #1014 Trie树
1014 : Trie树时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?”身经原创 2015-07-28 10:50:54 · 669 阅读 · 0 评论 -
[优先队列+贪心]poj3614 Sunscreen
那么将奶牛按照阳光强度的最小值从小到大排序。 将防晒霜也按照能固定的阳光强度从小到大排序从最小的防晒霜枚举,将所有符合 最小值小于等于该防晒霜的 奶牛的 最大值 放入优先队列之中。 然后优先队列是小值先出 所以就可以将这些最大值中的最小的取出来。更新答案。#include <iostream>#include<algorithm>#include<queue>#include<math原创 2015-08-07 15:51:31 · 488 阅读 · 0 评论 -
[数据结构] 字典树
字典树又被称作Trie树,其效率非常高,所以在字符串查找,前缀匹配中应用非常广泛,其高效率是以空间为代价的。典型应用是用于统计和排序大量的字符串,它的优点是,最大限度地减少无谓的字符串比较,查询效率比哈希表更高。Trie树的核心思想是以空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。Trie树的基本性质可以归纳为: - 根节点不包含字符,除根节点以外,每个节点只包含一个原创 2015-07-27 21:47:00 · 957 阅读 · 0 评论 -
[线段树] POJ 3264 balanced lineup
Balanced LineupTime Limit: 5000MS Memory Limit: 65536K Total Submissions: 33267 Accepted: 15615 Case Time Limit: 2000MS Description For the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50,000) al原创 2015-07-21 19:51:21 · 561 阅读 · 0 评论 -
[线段树]HDU 1754 I hate it
B - I Hate It Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求原创 2015-07-22 12:03:59 · 456 阅读 · 0 评论 -
[树状数组] poj3468 A Simple Problem with Integers
E - A Simple Problem with Integers Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%I64d & %I64u SubmitStatus Description You have N integers, A1, A2, … , AN. You need to deal with原创 2015-07-23 10:36:58 · 563 阅读 · 0 评论 -
[树状数组] 区间求和的三种模型
树状数组在区间求和问题上有很高的效率,尤其在非常困难的比赛中(数据量大,对时间限制很严格的比赛)能发挥非常大的作用,其各种复杂度都要比线段树低很多,而且其代码简洁优美……有关区间求和,主要有以下三个模型: (以下设a[1…n]为一个长为n的序列,初始值全为0)1、改点求段型:即对于序列A有以下操作:求整段区间的和:给定i,计算a1+a2+…+ai修改单点:给定x和c,执行ax += c这是最原创 2015-07-22 22:06:07 · 2842 阅读 · 1 评论
分享