![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
ccsu_001
这个作者很懒,什么都没留下…
展开
-
pku2886(约瑟夫变形加强)
约瑟夫算是一个比较经典的问题了,但是它的变种很多,下面我讲的这一种是数据比较大的那种,说实话现在才来写这个题有点晚,因为但是合肥赛区网络赛的时候就有一道极其相似的题目,但是我们学校没一个人做出来,如果当时学了线段树的话,这题应该是秒杀题。题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2886针对这题,可以向右或向左计数,但是要直接去原创 2009-10-21 09:28:00 · 1241 阅读 · 1 评论 -
几道KMP题目,经典
pku2406 Power Stringshttp://162.105.81.212/JudgeOnline/problem?id=2406 pku1961 Periodhttp://162.105.81.212/JudgeOnline/problem?id=1961 pku2752 Seek the Name, Seek the Famehttp://162.105.原创 2010-05-28 22:08:00 · 3951 阅读 · 0 评论 -
pku2374 Fence Obstacle Course
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2374题意简述:题意和pku1661几乎一样的,从最高层的某点,到最底层的0点,求最短横移路程。解题思路:dp+线段树。这题的数据就是大了点,要不完全和pku1661的解法一样了。对于这个问题,可以很快想到dp,并确定状态和方程,dp[i][0]和dp[i][1]分别表示从第i层的左右原创 2010-04-30 15:55:00 · 965 阅读 · 0 评论 -
关于本菜对线段树的总结
线段树是一种二叉树的结构,没个节点保存一条线段,其中可以添加权值。而关于其操作就特灵活了,虽然最终就是抽象成建树,插入,删除,更新,统计...但是要想到怎么把实际模型抽象成线段树的模型,于是模型的建立是关键。由于线段树的特性,使其特别实用,比如对区间的简单统计、经典问题约瑟夫、几何类的矩形面积(周长)并...都在传统的方法基础上大大提高了效率。多锻炼是关键!!!关于自己写过的几道线段树的题目:原创 2010-03-14 19:27:00 · 587 阅读 · 0 评论 -
hdu1166 敌兵布阵
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166题意简述:中文题。解题思路:线段树。先建树,然后根据要求进行插入和统计操作即可。很好写,1y。代码:#include#include#includeusing namespace std;const int Len=50005;struct lintTree{原创 2010-03-11 21:05:00 · 664 阅读 · 0 评论 -
pku1182 食物链
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1182题意简述:中文题目就不敷述。解题思路:代码有注释。代码:#include #include using namespace std;const int MAXN = 50001;struct Node { int parent; i原创 2010-03-08 20:20:00 · 595 阅读 · 0 评论 -
pku2492 A Bug's Life
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2492题意简述:给定若干种关系,要求检查看是否存在同性恋。解题思路:并查集。和上一篇的解题思路,也是加了一个num[i]保存与 i 相对的关系号码。代码:#includeusing namespace std;const int Len=2005;int num[Len原创 2010-03-08 20:12:00 · 573 阅读 · 0 评论 -
pku1703 Find them, Catch them
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1703题意简述:两种操作,A,x,y和D,x,y。分别是问x和y是否属于同一类,和指示x和y是不同类。根据题目的输出来输出相应的返回信息。解题思路:并查集+乱搞。反正我是想着想着就乱搞出来了,在一般的并查集当中加了一个num[i]数组表示与 i 相对的号码。然后就是简单的并查集操作了。原创 2010-03-08 19:57:00 · 617 阅读 · 0 评论 -
pku1177 picture(矩阵周长并)
只能说线段树太强大了,以下是我的代码(含注释),希望大家能看懂:#include#include#includeusing namespace std;const int Max=5005;struct lineTree{ //线段树结构体 int down,up; //线段上下端坐标 int len,num; //线段长度,连续线段的个数原创 2009-11-06 19:06:00 · 976 阅读 · 0 评论 -
pku1151 Atlantis(矩阵面积并)
话说这题很多人直接离散化过的,但我想这题的考察点应该是一个经典的问题(矩阵面积并),由于矩阵面积并的求法和上一篇blog矩阵周长并的求发极为相似,故在此不多加说明,以下是我的代码,希望对大家有帮助:#include#include#include#includeusing namespace std;struct lineTree{ int down,up;原创 2009-11-06 19:09:00 · 927 阅读 · 0 评论 -
用dfs序维护树结构
给定一棵n个节点的树,m次查询,每次查询需要求出某个节点深度为h的所有子节点。对于这个问题如果试图去对每个节点保存所有深度的子节点,在数据大的时候内存会吃不消;或者每次查询的时候去遍历一遍,当数据大的时候,时间效率会非常低。此时如果使用dfs序维护树结构就可以轻松地解决这个问题。作为预处理,首先将将树的所有节点按深度保存起来,每个深度的所有节点用一个线性结构保存原创 2015-08-14 21:05:09 · 3077 阅读 · 0 评论