----------数据结构----------
文章平均质量分 92
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
CSP-S 模拟 迷雾华光 (树分块)(虚树)(主席树)(树上莫队)
题意:给一棵树,每个节点有 3 个权值,问路径众数,次数相同以最小的为众数n≤8e4,q≤1e5,512MB,10sn\le 8e4,q\le1e5,512MB,10sn≤8e4,q≤1e5,512MB,10s首先 3 个权值就是故意来累加你常数的东西,既然开了 10s10s10s,就会猜到肯定是根号算法离线算法首先考虑离线就是一个树上莫队,但是由于树上莫队按 dfsdfsdfs 序到...原创 2019-11-08 19:48:09 · 309 阅读 · 0 评论 -
数据结构好题汇总 (19/10/23)
HEOI2013 Segment类似标记永久化,每个区间保留那个区间的最大线段,单点查的时候取 maxmaxmax 即可找到线段的区间过后,考虑用它去覆盖这个区间的线段如果全部比当前优,就覆盖如果部分优,分类讨论:1.左边高,中间高 ---- 左区间全部为当前,递归处理右区间2.左边高,中间低 ---- 递归处理左区间右边同理AHOI2014 奇怪的计算器考虑用线段树维护以每一...原创 2019-10-23 20:03:59 · 328 阅读 · 0 评论 -
暑假集训 ---- (树上)数据结构
ZJOI 2007 捉迷藏 一棵树,点权为 0/1,每次修改一个点的点权,询问两个最远的 1 的距离点分树每个点维护:到当前节点的最远距离,维护最大和次大拼起来的,和一个全局最大的#include<bits/stdc++.h>#define N 200050#define inf 0x3fffffffusing namespace std;int read(){ int...原创 2019-10-04 16:35:03 · 239 阅读 · 0 评论 -
暑假集训 ---- 数据结构
CF377D Developing Game考虑到一个合法的方案必须有 max(li)≤min(vi)max(l_i)\le min(v_i)max(li)≤min(vi),max(vi)≤min(ri)max(v_i)\le min(r_i)max(vi)≤min(ri)也就是一定存在一个 (L,R)(L,R)(L,R)使得 L∈[max(li),min(vi)],R∈[max(vi...原创 2019-10-04 15:43:34 · 246 阅读 · 0 评论 -
CF896C Willem, Chtholly and Seniorious [ODT]
传送门ODT是个美妙有暴力的东西大体思想是用一个 set 维护一段一段的区间,比如struct Node{int l, r, v;};set<Node> S;适用范围就是有区间赋值操作,因为这个操作可以大大缩小set的空间然后又个核心的 Split 操作,把一个区间分成两个,大概就是lower_bound一下左端点然后删除区间再插入两个区间还有一个比较核心的...原创 2019-07-17 23:17:58 · 228 阅读 · 0 评论 -
[NOI2019]弹跳 [四分树+dijsktra]
传送门打模拟赛只会线段树优化建图,于是只有72分后来问 ldx 神仙学长,他说是个叫四分树的东西,我一脸懵逼?他说线段树是一分为2,四方树是把一个矩阵一分为4我想了想,好有道理啊!于是开始自己 yy考虑动态开点,把每个点插入到树中,类似线段树,只会多log个节点但优化建边的时候,每条边会想树上连log^2 个点,显然要凉于是我想,dijsktra的时候在矩阵里面直接查然...原创 2019-07-19 17:06:50 · 325 阅读 · 3 评论 -
近期刷题总结[ 19 04 21 ]
目录P2056 [ZJOI2007]捉迷藏[括号序列 + 线段树]P3857 [TJOI2008]彩灯[ 线性基 ]P4570 [BJWC2011]元素[ 贪心 + 线性基 ]P5304 [GXOI/GZOI2019]旅行者 [ dijsktra ]P5303 [GXOI/GZOI2019]逼死强迫症[ DP + 矩阵乘 ]P5300 [GXOI/GZOI20...原创 2019-04-21 14:30:04 · 677 阅读 · 0 评论 -
P4309 [TJOI2013]最长上升子序列 [vector+树状数组]
传送门考虑每新加进来一个数, 要么答案还是之前的, 要么这个数重新更新一个发现数是按顺序插入的, 也就是说一个数无论放在哪里, 它后面的数对它都没有影响于是我们可以用平衡树之类的东西先把原序列搞出来然后按位置插入当前位置的值, 更新当前的DP值可以树状数组维护, 然后惊讶地发现平衡树那一步可以用vector水#include<bits/stdc++.h>...原创 2019-03-03 20:51:26 · 266 阅读 · 0 评论 -
[WOJ4377] 梦境 [贪心+set]
传送门我们发现, 对于每个ti, 答案为 不会做先排序, 将li<=ti的ri插入set, 然后lower_bound 就可以了#include<bits/stdc++.h>#define N 200050using namespace std;int n,m;struct Node{ int l,r; friend bool operator &l...原创 2019-02-19 12:18:00 · 217 阅读 · 0 评论 -
Matrix[矩阵hash]
#include<bits/stdc++.h>#define N 1050#define T 105#define ULL unsigned long longusing namespace std;int a[N][N],n,m,A,B,q;ULL hash[N][N] , base[T*T];map<ULL,int> M;int mai...原创 2018-11-25 11:16:34 · 216 阅读 · 0 评论 -
noip提高组数据结构模板[并查集,st表,树状数组,线段树]
/*数据结构*/ //并查集 for(int i=1;i<=n;i++) fa[i]=i;***int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}//st表 for(int i=2;i<=n;i++) Log[i]=Log[i/2]+1;for(int j=1;j<=18;j++) for(int i=1;...原创 2018-10-25 21:29:37 · 307 阅读 · 0 评论 -
哈夫曼树
1、问题描述 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法。其压缩率通常在20%~90%之间。哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。一个包含100,000个字符的文件,各字符出现频率不同,如下表所示。 有多种方式表示文件中的信息,若用0,1码表示字符的方法,即每个字符用唯一的一个0,1串表示。若采用定长编码表示...转载 2018-08-24 22:00:13 · 7611 阅读 · 0 评论