数据结构
文章平均质量分 65
鬼沐冢
总会突然想起喵喵
展开
-
牛客练习赛7 - E(树状数组+离散化)
链接:题目描述珂朵莉给了你一个序列,有个子区间,求出她们各自的逆序对个数,然后加起来输出输入描述:第一行一个数 n 表示这个序列 a 的长度之后一行 n 个数,第i个数表示ai输出描述:输出一行一个数表示答案示例1输入101 10 8 5 6 2 3 9 4 7输出270原创 2017-12-03 11:25:10 · 488 阅读 · 0 评论 -
CodeForces - 652D(树状数组+离散化)
链接:CodeForces - 652D题意:给出n个区间,求每个区间中包含了几个其它的区间。题解:将每个区间的起点和终点视为一个坐标,那么问题就转化为了求一个点的左下方有几个点。将坐标按照x降序y升序排列,用树状数组维护y。要用离散化。#include <bits/stdc++.h>using namespace std;const int maxn = 2e5 + 10;i...原创 2018-01-23 11:59:26 · 508 阅读 · 1 评论 -
CodeForces - 961E(树状数组)
链接:CodeForces - 961E题意:给出一个序列A,下标1-N,求满足(1) x < y (2) a[x] >= y (3) a[y] >= x的数对有多少个。题解:求数对个数,考虑到用树状数组。但只用树状数组却无法同时满足条件(2)(3),故先用vector满足条件(3),再用树状数组。vector[min(i - 1, a[i])].push_back(i);即在满...原创 2018-04-09 18:58:06 · 1080 阅读 · 0 评论 -
CodeForces - 960D(模拟)
链接:CodeForces - 960D题意:给出一个二叉树,根节点是1,节点x的左孩子是2*x,右孩子是2*x+1。给出以下三个操作 1 X K :将x所在的那一层的所有数右移K位(循环移动) 2 X K :将x所在的那一层的所有数右移K位(循环移动),并且其每个节点的子树也跟着移动 3 X :输出X到根节点1的路径题解:因为移动的是值,所以原位置标号是不变的。我们只需记录该层...原创 2018-04-11 19:08:40 · 313 阅读 · 0 评论 -
CodeForces - 960F(主席树)
链接:CodeForces - 960F题意:一个有向图,可非连通,可重边,可自环,每条边上有权值。问权值严格递增,且路径不能违背输入顺序,的最长路径(指边数最多)的边数是多少。题解:用map存1e5个线段树,Query(u, x),表示以u为终点,且与u相连的边权值不大于x的最长路径边数。 状态按输入顺序转移,比如现在输入<u, v, w>。 那么状态从u转移到v...原创 2018-04-12 15:44:32 · 315 阅读 · 0 评论 -
2018年东北农业大学春季校赛:L-wyh的天鹅(Treap)
链接:2018年东北农业大学春季校赛:L-wyh的天鹅题意:插入元素,删除元素,查找第K大。题解:Treap。#include <bits/stdc++.h>using namespace std;#define Lc (o -> Ch[0])#define Rc (o -> Ch[1])#define val (o -> v)#define pre (o...原创 2018-04-18 18:55:42 · 188 阅读 · 0 评论