
数据结构
ACM_Nestling
这个作者很懒,什么都没留下…
展开
-
poj 2259——Team Queue
题意:有t个队,每个队里面有一些元素。维护一个team原创 2014-09-19 17:43:34 · 1261 阅读 · 0 评论 -
poj 2353——Stars
题意:找出坐标系中一个点的左下方有多少点 思路:题目输入是按照从下向上,从左向右输入,所以,按照横坐标的值建立树状数组。每次查询只要是横坐标小于当前坐标的,就一定是在左下方原创 2015-02-07 16:50:50 · 1522 阅读 · 0 评论 -
poj 1703——Find them, Catch them
题意:有两个帮派,警察要调查出每个人属于哪个帮派。每次更新的两个数据是属于不同帮派的人,每次查询的是两个人是否属于一个帮派。 思路:用并查集来表示可以扯上关系的人。如果两个人的关系可以判定,那么他们就属于一个集合。在一个集合中,用r来表示节点跟父节点的距离。如果距离是0,那么这个节点就是父节点。如果距离是1,那么这个节点跟父节点相差一个,就属于不同帮派,如果距离是2,就是一个帮派,以此类推。#in原创 2015-02-07 08:53:38 · 435 阅读 · 0 评论 -
poj 2182——Lost Cows
题意:有一个n个整数的序列,给出每个数前面比这个数小的数的个数。求原序列。 思路:从后往前,用树状数组保存每个数是否出现过。如果出现过就是1,没有出现过就是0。假设题目给出的序列是A[]。那么,对于A[i],第i个位置上的数,应当满足在树状数组中,第i个位置前面0的个数正好等于A[i],这个数就是所求的这个位置的值。原创 2015-02-07 18:04:45 · 414 阅读 · 0 评论 -
hdu 2222——Keywords Search
题意:给出几个字符串,在给出一个住传原创 2014-11-06 20:52:44 · 414 阅读 · 0 评论 -
poj 2528——Mayor's posters
题意:在一面墙上贴海报,给出每张海报占的格子范围,求最后可以看到几张海报 思路:线段树,但是各自的范围是1~10000000。如果直接用线段树表示这么大范围肯定不够。但是海报最多就10000张,一个海报就两边。将出现过的边进行离散化,使需要的空间大大缩小原创 2015-02-13 17:58:05 · 447 阅读 · 0 评论 -
hdu 3746 ——Cyclic Nacklace
题意:在一个字符串中添加几个字符,使这个字符串至少有一个循环节。 思路:网上好多代码都用的KMP。但是我看到这道题第一想法是扩展KMP。。就用exKMP写了一发,发现错了。后来看了看网上KMP的方法。发现KMP和扩展KMP在这道题里面都可以用。原创 2015-04-24 21:05:45 · 386 阅读 · 0 评论 -
poj 2752——Seek the Name, Seek the Fame
题意:找出所有的前缀等于后缀的子串 思路:KMP,一直沿着失配函数往前走就好了原创 2015-04-25 21:52:22 · 384 阅读 · 0 评论 -
hdu 4763——Theme Section
题意:找出一个字符串前缀与后缀相同,并且中间也有相同的一串的最大长度,要求这三段不重叠。原创 2015-08-07 17:37:32 · 582 阅读 · 0 评论 -
poj 4020——John’s Inversions
题意:一张牌上面有一个蓝色数字和一个红色数字,问怎么把这些牌排序可以使得所有牌里面的红色数字与蓝色数字的逆序数和最小。原创 2015-07-28 16:59:22 · 539 阅读 · 0 评论 -
poj 4018——High security
题意:有50000个字符串,每个字符串都是5个字符。找出这些字符串中,有多少对字符串在i个位置上不同(i<=5)。原创 2015-07-29 17:29:52 · 537 阅读 · 1 评论 -
hdu 4902——Nice boat
题意:维护一个线段树,有两种更新,一种是修改一个区间的值。一种是在一个区间内把所有大于x的数改成这个数与x的最大公约数。原创 2015-07-30 17:17:39 · 541 阅读 · 0 评论 -
zoj 3612 ——Median
题意:在一个数组中加入或删除元素,求每次操作以后这个数组的中位数。 思路:本来应该是平衡二叉树,发现不会写,后来想想用线段树来写了一个。先把所有操作都读进来,然后把数字离散化,然后在线段树上面操作。 代码如下:#include<cstdio>#include<cstdlib>#include<math.h>#include<iostream>#include<cstring>#incl原创 2015-08-03 17:38:04 · 453 阅读 · 0 评论 -
hdu 4750——Count The Pairs
题意:南京理工大学有很多景点。两个景点组成一对。两个景点的价值用这种方式计算:设两个景点之间一条路径中最长的一条路的距离是s,这两个景点的价值f就是所有路径中s的最小值。游客想要找价值大于等于t的景点对有多少个。 思路:将边按照权值从小到大排序。依次遍历每条边。因为每次加入的边是当前遍历过的边中最大的,若这条边连接的两个节点不在同一个集合中,那么这两个集合之间点对的价值就是这条边的权值。 错误:原创 2015-08-06 19:16:40 · 553 阅读 · 0 评论 -
Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake
题意:有几个蛋糕,要求把他们按照这样的方式堆起来: 下面的编号比上面的小;下面的体积比上面的小。 求把这些蛋糕堆起来能得到的最大体积是多少。原创 2016-02-27 17:07:33 · 447 阅读 · 1 评论 -
Codeforces Round #352 ——Ultimate Weirdness of an Array
题意:一个数组的weirdness是这个数组中所有最大公约数的最大值。给出一个数组a,将a中[i,j][i,j]之间的部分去掉,剩下的部分的weirdness就是f(i,j),求所有的i,j的组合的weirdness的和。原创 2016-05-30 15:14:18 · 583 阅读 · 0 评论 -
spoj 1043——Can you answer these queries I
参考:http://www.cnblogs.com/staginner/archive/2012/04/18/2455126.html 题意:找出一个区间内的最大的连续和 思路:线段树中维护三个数组,一个是这个区间内的最大连续和,一个是从左往右的最大连续和,一个是从右往左的最大连续和。 错误:一开始想当然的认为,左儿子返回的就是从左往右,右儿子应该返回从右往左。后来发现想错了。返回的左右应当根原创 2015-02-05 21:32:12 · 513 阅读 · 0 评论 -
hdu 5147——Sequence II
题意:HDU提供了中文题目。。。有一个长度为n的数列A,数列中的每个数都不小于1且不大于n,且数列中不存在两个相同的数.请统计有多少四元组(a,b,c,d)满足:1. 1≤abcd≤n2. AaAb3. AcAd思路:题解给出的方法是枚举c,我想的方法是枚举d。题解的思路比我的简单。。。假设数组保存与A[ ]里面我的想法是用两个树状数组,have用于维护原创 2014-12-21 15:40:32 · 519 阅读 · 0 评论 -
poj 3368——Frequent values
题意:找出一个范围内出现次数最多的数字思路:原创 2014-11-20 20:52:16 · 513 阅读 · 0 评论 -
poj 2082——Terrible Sets
题意:求给出矩形中能找出最大矩形的面积思路:题目中给出了集合B,S,T,原创 2014-09-19 16:50:05 · 511 阅读 · 0 评论 -
hdu 5023——A Corrupt Mayor's Performance Art
题意:P是给线段涂色,Q是查询思路:线段树代码如下:#include#include#include#include#includeusing namespace std;struct node { int l; int r; int value;}tree[6000010];int co[40];void build (int root,in原创 2014-09-22 16:01:58 · 469 阅读 · 0 评论 -
hdu 5033——Building
题意:一个城市在X轴上,有很多高大的建筑,原创 2014-09-23 09:20:09 · 579 阅读 · 0 评论 -
hdu 2850——Load Balancing
题意:把N个数分成M堆,要和最大的那堆和原创 2014-11-07 16:35:39 · 501 阅读 · 0 评论 -
poj 1204——Word Puzzles
题意:在一个矩阵中找到模式串思路:原创 2014-11-12 08:38:06 · 464 阅读 · 0 评论 -
uva 1203 - Argus
题意:一些指令按照时间原创 2014-11-02 21:26:35 · 527 阅读 · 0 评论 -
poj 3928——Ping pong
题意:求一个数组A中有多少个i,j,k原创 2014-11-19 20:03:54 · 611 阅读 · 0 评论 -
hdu 1358——Period
题意:找到一个字符串的循环节思路:KMP算法,KMP的next数组保存额原创 2014-11-04 09:48:51 · 419 阅读 · 0 评论 -
hdu 1711——Number Sequence
题意:KMP代码如下:原创 2014-11-04 20:17:14 · 471 阅读 · 0 评论 -
hihocoder 字典树,kmp算法
Trie树#include#include#includeusing namespace std;struct node{ int next[27]; int sum; void init() { sum=0; memset(next,-1,sizeof(next)); }};node L[1000500原创 2014-10-31 15:35:26 · 560 阅读 · 0 评论 -
hdu 4893——Wow! Such Sequence!
题意:有三种操作,1是将第k个原创 2014-11-23 17:59:49 · 597 阅读 · 0 评论 -
hdu 2896——病毒侵袭
题意:给出一些匹配串,再给出一些模式串,在这些模式串中找匹配串思路:题目中说原创 2014-11-07 21:39:20 · 605 阅读 · 0 评论 -
hdu 3065——病毒侵袭持续中
题意:计算每种模式串出现的次数原创 2014-11-08 17:09:48 · 660 阅读 · 0 评论 -
hdu 5124——lines
题意:有一些线段覆盖一条一线,找出一个点,覆盖它的线段最多。求个数思路:要找的这个点可能有无数多个,但是,给出的这些线段的端点一定有一个或者几个满足条件的。所以将给出的线段的端点记下,然后排序。用线段树维护区间内被覆盖次数的最大值。错误:比赛的时候每用线段树想偷懒,结果只过了pretest。后来线段树初始化的时候,初始化的个数应当是按照不同端点的个数来,而不是线段的个数来,又错了好多次。原创 2014-11-30 20:17:21 · 525 阅读 · 0 评论 -
fzu 2105——Digits Count
题意:对区间进行按位与、或、非运算,然后对区间求和思路:题目中数字比较少,可以按照是否一样建立线段树代码如下:#include#include#includeusing namespace std;const int maxn=3000005;int d[maxn];int A[1000005];inline void pushdown(int o,int l,int原创 2014-12-01 22:06:08 · 605 阅读 · 0 评论 -
Codeforces Round #363 (Div. 2) D. Fix a Tree
题意给出一组数表示每个节点的父节点,要修改最少的边使得这些节点变成一棵树原创 2016-07-21 10:45:17 · 395 阅读 · 0 评论