ACM_数据结构
文章平均质量分 66
tagyona
独立思考。不论是做题,还是人生。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 1566 Color the ball
线段树或树状数组都可以做,下面提供更简单的一种方法,以前Codeforces见大牛用过。 #include #include using namespace std; const int maxn=100005; int f[maxn]; int main() { int n,x,y; while(scanf("%d",&n)&&n) { memset原创 2013-04-01 22:05:09 · 738 阅读 · 0 评论 -
POJ 2823 Sliding Window(单调队列)
http://poj.org/problem?id=2823 线段树写9000MS+,实在看不下去了,百度出了单调队列。 这篇介绍不错http://www.cnblogs.com/liukeke/archive/2011/07/31/2122488.html 摘录其维护部分: 如何维护单调队列呢,以单调递增序列为例: 1、如果队列的长度一定,先判断队首元素是否在规定范围内,如果超范围原创 2013-05-10 17:01:51 · 607 阅读 · 0 评论 -
LA 3839 动态最大连续和(线段树)(训练指南)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4146 要求给定区间的最大连续和,主要维护相关信息,prefix最大前缀和,suffix最大后缀和,sum-Max区间最大连续和。 区间的最大连续和=max( max(sum-Max(rt),s原创 2013-04-19 18:45:02 · 731 阅读 · 0 评论 -
Uva 11235 频繁出现的数值(RMQ-Sparse Table 算法)(训练指南)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2176 范围最小值问题(Range Minimum Query,RMQ).实践中最常用的是Sparse Table 算法,预处理时间是O(nlogn),查询只需要O(1),而且常数很小。 注意到转载 2013-04-18 14:32:30 · 909 阅读 · 0 评论 -
LA 3027 合作网络(并查集)(训练指南)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4075 I u v:把u的父亲结点设为v,距离为|u-v|%1000.输入保证执行指令前u没有父节点。 E u:询问u到根结点的距离。 #include #include using na转载 2013-04-17 18:26:58 · 853 阅读 · 0 评论 -
LA4329 乒乓比赛(树状数组)(训练指南)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4174 考虑第i个人当裁判的情形。假设从a1到ai-1有ci个人比ai小,那么就有(i-1)-ci个比ai大。di同理。 根据乘法原理和加法原理,i当裁判时有ci(n-i-di)+di(i-1-转载 2013-04-17 21:29:48 · 1139 阅读 · 0 评论 -
UVa 11997 K个最小和(训练指南)
You're given k arrays, each array has k integers. There are kk ways to pick exactly one element in each array and calculate the sum of the integers. Your task is to find the k smallest sums among them转载 2013-04-17 00:00:59 · 785 阅读 · 0 评论 -
ZOJ 2724/HDU 1509 Windows Message Queue(优先队列)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1509 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2724 #include #include #include #include using namespace std;原创 2013-03-08 16:47:14 · 1071 阅读 · 0 评论 -
POJ 2528 Mayor's posters(线段树+离散化)
参照HH牛的模板敲的。RE了3次后发现X数组开小了,坑死爹了。 HH牛的博客:http://www.notonlysuccess.com/index.php/segment-tree-complete/ #include #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define mid (l转载 2013-04-03 21:15:38 · 588 阅读 · 0 评论 -
POJ 2828 Buy Tickets(线段树)
题目链接:http://poj.org/problem?id=2828 大牛们的思路:从后往前考虑,其位置只跟pos值有关,结点值sum存储的是该区间内的空位。每插入一个点,区间内所有空位数减1。需要注意的是插在左边或右边时p值的变化。 #include #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define原创 2013-03-30 20:39:57 · 532 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers(线段树区间更新+求和)
题目链接:http://poj.org/problem?id=3468 参考了胡浩大牛的代码模板: 区间更新+区间求和 #include #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define mid (l+r)>>1 #define LL long long using namespace std; const int ma原创 2013-04-01 19:10:10 · 530 阅读 · 0 评论 -
HDU 2473 Junk-Mail Filter
并查集题。 搞了一会发现思路不对,实际上只需要每次删除点v的时候给点v换一个代号即可,其他思路同正常并查集。 思路参考:http://www.cnblogs.com/fornever/archive/2011/11/08/2240751.html 最后找下有几个是父亲结点. #include #include using namespace std; const int maxn原创 2013-06-05 21:04:10 · 581 阅读 · 0 评论
分享