ACM_数据结构
文章平均质量分 82
frog1902
Never say never
展开
-
SOJ 3085: windy's cake V
一道单调栈基础题,也可以用双端队列来做题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=3085题意:在一个非负数序列中寻找一个“价值”最大的子序列,价值的定义是:该子序列的最小值*子序列和算法:O(n)算法:需遍历序列两次。依次算出以元素a[i]为最小值的序列的最大”价值”。。。(这样说原创 2012-12-17 11:39:21 · 850 阅读 · 0 评论 -
POJ 1151: Atlantis
题目链接:http://poj.org/problem?id=1151题目大意:给出一些矩形,矩形之间可能重叠。求覆盖的总面积算法:矩形面积并的典型应用。把线段树的每个节点代表到前一个节原创 2013-07-28 10:19:52 · 990 阅读 · 0 评论 -
POJ 2155: Matrix
题目链接:http://poj.org/problem?id=2155题目大意:在一个n*m的0-1矩阵上执行如下两个操作:1)把某个子矩阵中的元素取反2)查询某个元素的值算法:二维树状数组。把[x1,x2]*[y1,y2]的矩阵取反,相当于把点(x1,y1),(x2+1,y1),(x1,y2+1),(x2+1,y2+1)到n^n的矩形都取反一次。原创 2013-07-28 10:07:30 · 956 阅读 · 0 评论 -
HDOJ 4417: Super Mario
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417题意:给定一个序列,每次询问[l,r]区间内算法:本题解法非常多。主席树、树状数组、划分树+二分、划分树、归并树+二分、线段树+二分。。。以后我会慢慢补全这篇文章,当做一次基础数据结构训练。划分树 (218ms)#include原创 2013-05-31 01:36:43 · 1224 阅读 · 0 评论 -
HDOJ 4638: Group
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4638题目大意:给定一个序列,是1~n的一个排列。每次查询一个区间,问这个区间中含有多少个子集,自己中的序号是连续递增的(顺序可打乱)。例如区间1,5,3,2可以分成1,2,3和5。算法:不难看出一个点只能影响两个点,也只能被两个点影响。我们先算出每个点前面有原创 2013-08-01 19:57:04 · 1082 阅读 · 0 评论 -
ZOJ 3717: Final Exam Arrangement
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3721题意:给出若干课程的上课区间,若两门课程的上课时间不重叠,则可能有学生同时选修这两门课程,因此不能安排在一天考试。问至少要安排多少天考试,并输出方案算法:线段树优化的DP首先把课程按照结束时间排序。对于一个课程,原创 2013-06-30 15:33:32 · 1239 阅读 · 0 评论 -
POJ 2827:Auto-Calculation Machine
题型很普通,写起来有一些细节要注意,于是记录一下。题目链接:http://poj.org/problem?id=2827题意:给定一个序列,给出一些形如(i,j,sum)的询问,代表元素i到元素j之间的闭区间元素的和为sum。 若此询问与之前的正确询问矛盾,则此询问错误,输出正确值。否则此询问正确。算法:对于属于同一集合的元素原创 2013-06-10 00:04:19 · 1331 阅读 · 2 评论 -
POJ 1291: This Sentence is False
题目链接:http://poj.org/problem?id=1291题意:给出n句话,形如“第x句话是错误的”或“第x句话是正确的”。判断是否有合法结果。若有,计算至多有多少句话是正确的。算法:典型的并查集。对于每个节点,维护与父节点的距离d[x],同一并查集内,相对距离为偶数的节点共真假。每处理一条关系,若这两句话不在一个原创 2013-06-11 01:02:05 · 1537 阅读 · 0 评论 -
POJ 4047: Garden
线段树模板题哎,好久没写线段树了,吃力。题目链接:http://poj.org/ProblemDescriptions/jinghua.pdf题意:对某个区间进行以下三种操作:0、改变某个位置的值1、交换某两个位置的值2、查询某个区间内连续k个数和最大值算法:由于k的值是确定的,所以直接用每个叶子节点保存它之前的k个元素的值即可。原创 2013-04-27 15:40:29 · 903 阅读 · 0 评论 -
POJ 1703: Find them, Catch them
非常基础的一道在查询时需要传递其它信息的并查集,这方面的经典题目首推 POJ 1182 食物链鉴于博客里没有这种类型的题目就放上来了。写合并的时候还错误的把两个节点间的距离写成两个根节点之间的距离了,智商捉急得简直不能多说 = =|||题目链接:http://poj.org/problem?id=1703题意:有一些人分属两个帮派。每个帮派至少有一个原创 2013-05-06 23:46:54 · 843 阅读 · 0 评论 -
SOJ 2163: Lost Cows
线段树的一种基础应用PS:最近快期末了,在SOJ上全做的是大一都能搞定的水题,写题解的时候只能矮子里面拔将军,惭愧啊。。。倒是为了完成集训队布置的作业,在ZOJ上发现了一两道好题,哈哈~~~题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=2163题意:现有一个序列是整数1~n的一种排列对于序列中原创 2012-12-17 12:10:48 · 828 阅读 · 0 评论 -
SGU 319: Kalevich Strikes Back
一道蛮有意思的线段树+扫描线,很值得思考的一道题。因为题目给的条件很强,有很多可以根据题目优化的地方。只是优化的时候可千万不要手滑哦~尽量按照规范的写法来写,可以防止出错。题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=319题意:在一个W*H的平面上给定n互不相交但可能相互包含的矩形框架原创 2013-04-18 10:33:02 · 1007 阅读 · 0 评论 -
POJ 2750: Potted Flower
题目链接:http://poj.org/problem?id=2750题意:在一个环状数列上动态修改某一元素的值,每次询问最大子串和。数据保证答案始终是正的,注意题目要求子串长度必须小于原串长度。算法:线段树的简单应用。注意答案分两种情况:1)直接在线段树上求最长子序列和(题目要求子串不得等于原串,可以用小技巧处理,详见代码)2)求所有元素和原创 2013-05-06 12:44:02 · 1120 阅读 · 0 评论 -
POJ 2482:Stars in Your Window
静态二叉检索树。其实说来奇怪,学ACM这么长时间了,而且我还是负责基础数据结构的,居然连这个都没写过。//我发现我现在做的题都好水啊咋办咋办。。题目链接:http://poj.org/problem?id=2482题意:给出平面上的一些点,每个点有权值问用一个w*h的矩形最多框住的点权和是多少矩形边框上的点不算在矩形内算法:把每个原创 2013-05-27 20:30:42 · 960 阅读 · 0 评论 -
POJ 3368: Frequent values
题意:给出一个单调非减序列,询问a[i]~a[j]区间内出现最多的元素出现了多少次题目链接:http://poj.org/problem?id=3368算法:RMQ的典型应用,以前都是用线段树实现的RMQ,今天特意学习了一下O(nlogn+q)的RMQ算法代码如下://其实我是来存模板的难道我会到处乱说?#include#incl原创 2013-05-07 13:24:07 · 961 阅读 · 0 评论 -
POJ 2886: Who Gets the Most Candies?
这道题拖了好久,眼泪都快掉下来了。。。先放个偷懒版代码,等我学了反素数再把打表那部分完善一下。题目链接:http://poj.org/problem?id=2886题目大意:n个孩子围成一圈。第k个孩子先退出圈子,然后根据他手持的数字顺时针或逆时针数若干个人,即可知道下一个退出的孩子是谁。第i个退出的人将获得sigma(i)颗的糖果。问谁获得原创 2013-05-02 20:33:18 · 884 阅读 · 0 评论 -
POJ 1177: Picture
矩形周长并。扫描线的基本应用。线段树果然是越写越熟越写越开心的哈~注意一下每个节点代表的是一个区间而非一个点。题目链接:http://poj.org/problem?id=1177代码如下:#include#include#include#include#include#include#include#include#include#inc原创 2013-04-16 14:17:34 · 913 阅读 · 0 评论 -
POJ 2019: Cornfields
题目链接:http://poj.org/problem?id=2019题目大意:给定一个N*N的矩阵,查询若干个B*B的矩阵中最大值和最小值的差值。算法:由于对于每个矩阵,查询的子矩阵的大小是固定的。、所以一看就是基础数据结构的练习。不过我暂时没空管这个,我做这道题是为了写一个二维RMQ的模板二维RMQ的原理也很简单。首先像一维RMQ一样,处理出原创 2013-08-03 14:36:04 · 1492 阅读 · 0 评论