数据结构
数据结构
qianguch
这个作者很懒,什么都没留下…
展开
-
Tree——LCA
题目描述: 题目背景: SOURCE:NOIP2015-SHY 给出一棵带有边权的树,问两点之间的距离。 输入格式: 第一行两个整数 n 和 m ,分别表示点数和询问数。 接下来 n-1 行,每行三个整数 x,y,z,表示 x 与 y 通过一条权为 z 的边连接。 接下来 m 行,每行两个整数 x,y,代表一组询问。 输出格式: 输出 m 行,每行一个整数,对应一组询问的答案。 样原创 2017-07-18 16:48:07 · 221 阅读 · 0 评论 -
[NOIP模拟][线段树+标记下传]Query
题目描述: 万恶的大头又出现了!他正在玩一个智障游戏:打怪兽。 现在大头的屏幕上出现了一排怪兽,每只怪兽头上有一个血条,每次大头可以选择一个区间进行攻击,攻击值为 K ,这个区间中血量小于 K 的怪兽都会被大头无情地干掉,当然怪兽不会坐以待毙,对于一个区间的怪兽,他们会在某个时刻血量同时加 X 。 大头头虽然很大,但是 IQ 并不高,在座的各位选手都不知道比他高到哪里去了。这个时候大头使出了大原创 2017-07-25 14:26:22 · 583 阅读 · 0 评论 -
[NOIP模拟][并查集]纸带
题目描述: 题目大意:有一个无限长的纸带··上面被划分为若干个格子··现在进行N次操作,第i次操作在L到R上擦出曾经写上的数字(如果有),并写上数字i,询问最终可以看到多少个数字。N小于10^6 样例输入: 4 0 5 3 8 5 6 4 7样例输出: 3题目分析: 首先毫无疑问离散化,但注意离散化时候如果相邻两个数的差大于1··需要在中间插入一个在原创 2017-11-01 11:10:20 · 455 阅读 · 0 评论 -
树的直径求法及证明
定义: 一棵树的直径就是这棵树上存在的最长路径。 求法: 两次dfs或bfs。第一次任意选一个点进行dfs(bfs)找到离它最远的点,此点就是最长路的一个端点,再以此点进行dfs(bfs),找到离它最远的点,此点就是最长路的另一个端点,于是就找到了树的直径。 证明: 假设此树的最长路径是从s到t,我们选择的点为u。反证法:假设搜到的点是v。 1、v在这条最长路径上,那么dis[u,v]>原创 2017-10-12 16:51:05 · 6629 阅读 · 0 评论 -
[POJ 3310][树的直径]Caterpillar
题目描述: 题目链接: poj 3310 Caterpillar DescriptionAn undirected graph is called a caterpillar if it is connected, has no cycles, and there is a path in the graph where every node is either on this path or原创 2017-10-13 21:46:05 · 806 阅读 · 0 评论 -
[RMQ之稀疏表(ST表)讲解及例题][POJ 3264]Balanced Lineup
讲解: 介绍: 稀疏表(Sparse Table, ST 表)与线段树、树状数组一样,也是常用来处理序列上的区间询问问题的。但 ST 表只能处理区间最值,即RMQ(Range Minimum Query)问题,它的空间需求也比前两者要大,是 O(nlogn)O(n log{n}) 级别的。ST 表需要 O(nlogn)O(n log{n}) 的时间预处理,但能O(1)O(1)回答单次区间最值原创 2017-10-13 17:06:18 · 426 阅读 · 0 评论 -
[树状数组求逆序对]光荣的梦想
题目描述: Prince对他在这片大陆上维护的秩序感到满意,于是决定启程离开艾泽拉斯。在他动身之前,Prince决定赋予King_Bette最强大的能量以守护世界、保卫这里的平衡与和谐。在那个时代,平衡是个梦想。因为有很多奇异的物种拥有各种不稳定的能量,平衡瞬间即被打破。KB决定求助于你,帮助他完成这个梦想。 一串数列即表示一个世界的状态。 平衡是指这串数列以升序排列,而从一串无序数列到有原创 2017-10-12 19:37:20 · 314 阅读 · 0 评论 -
[POJ 1985][树的直径]Cow Marathon
题目描述: 题目链接: POJ 1985 Cow Marathon After hearing about the epidemic of obesity in the USA, Farmer John wants his cows to get more exercise, so he has committed to create a bovine marathon for his cows原创 2017-10-12 17:00:47 · 1171 阅读 · 0 评论 -
[NOIP模拟][链表]裁剪表格
题目描述: 题目大意: 给一个n*m的矩阵,每个格子都有一个数字v,每次交换两个大小相同的不重叠的子矩阵,输出最后的矩阵。 输入格式: 第一行三个整数n,m,q代表表格的行数和列数和操作次数; 接下来n行,每行m个整数,表示格中的数字。 接下来q行,每行六个数字,r1,c1,r2,c2,h,wr_1,c_1,r_2,c_2,h,w,分别表示第一个矩形左上角所在行、所在列,第二个矩形左上角原创 2017-10-20 21:13:21 · 448 阅读 · 0 评论 -
[NOIP模拟]xor
题目描述 题目背景: SOURCE:NOIP2015-SHY-7 求一棵带边权的树的一条最大 Xor 路径的值。这里的“路径”不一定从根到叶子结点,中间一段路径只要满足条件也可以。 输入格式: 第一行,一个整数 N ,表示一颗树有 N 个节点,接下来 N-1 行,每行三个整数 a,b,c 表示节点 a 和节点 b 之间有条权值为 c 的边。 输出格式: 输出仅一行,即所求的最大值。 样原创 2017-10-06 17:03:27 · 306 阅读 · 0 评论 -
[NOIP模拟][POJ 2823][单调队列]滑动的窗户(Sliding Window)
题目描述: 题目链接: POJ 2823 http://poj.org/problem?id=2823 在一个包含 n 个元素的数组上,有一个长度为 k 的窗户在从左向右滑动。窗户每滑动到一个位置,我们都可以看到 k 个元素在窗户中。如下的例子所示,假设数组为 [1 3 -1 -3 5 3 6 7],而 k 等于 3 : 对于窗户滑动过的每个位置,请给出窗户内 k 个元素的最小值和最大值原创 2017-07-25 11:52:18 · 508 阅读 · 0 评论 -
[TOJ 3515][优先队列]Middle number
题目描述 题目来源: TOJ 3515 (原题面为英文) 有一个整数序列,我们现在有两个操作: 1.add a:意味着在序列的结尾添加一个整数 a ,形成一个长度为 n+1 的序列。 2.mid:输出当前序列的中位数。 所谓中位数,就是这个序列按升序排列后中间位置的数(如果序列的长度是偶数,那么中位数就是此序列中间两个数中较小的) 示例1:序列为 1 2 13 14 15 16,则中位数原创 2017-10-18 20:05:34 · 522 阅读 · 0 评论 -
[NOIP模拟][数据结构][二分]Work
题目描述: 题目背景: SOURCE:NOIP2015-SHY-5 假设现在离 noip 还有 m 天,有 n 个人要去参加比赛。他们每个人都有一个预定的训练量 r[i] ,所以每一天他们都抓紧时间练习。但是由于条件限制,第 i 天只有 t[i] 的时间可以练习。 我们都知道,一个人在开始干活以前总要浪费一些时间做一些杂七杂八的事情。现在我们假定第 i 个人每天在训练前浪费的时间是固定的,记为原创 2017-10-09 16:41:58 · 263 阅读 · 0 评论 -
POJ3648 A Simple Problem with Integers(树状数组实现)
题目描述: 题目链接: poj3648 http://poj.org/problem?id=3468 题目大意: 对于一个序列,进行区间修改,区间询问。读入数据在int范围内,但是计算的和等会超int,要用 long long。 题目分析: 如果用线段树做就是模板题,打标记+标记下传(标记永久化)。但是利用树状数组就不同了,因为普通的树状数组只支持单点修改。对于区间修改,我们假设序列为原创 2017-07-27 11:46:36 · 326 阅读 · 0 评论 -
[NOIP2016][单调队列]蚯蚓
题目描述: 题目链接: UOJ 264 http://uoj.ac/problem/264 题目背景: NOIP2016 提高组 Day2 T2 本题中,我们将用符号表示对 c 向下取整,例如:蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。 蛐蛐国里现在共有 n 只蚯蚓(n为正整数)。每只蚯蚓拥有长度,我们设第 i 只蚯蚓的长度为 ai(i=原创 2017-07-28 17:08:00 · 308 阅读 · 0 评论