随笔分类 - 数据结构
线段树的动态开点模板
摘要:学习自 数据结构学习笔记(5)动态开点线段树 动态开点线段树 感谢大佬们博客的帮助 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #defin
阅读全文
湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022)VP记录
摘要:随便记录下 湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022) 官方题解 VP情况 队友卡I占了机时导致罚时有点爆炸,也是策略的失误 6题837罚时 补到GH就不补个位数题 J 判断斐波那契区间有没有一段的和等于$n$ 由于$n \leq 10^{15}$直接暴力即可 #include<b
阅读全文
TorCoder
摘要:TorCoder 26棵线段树 建树,对于每个字符在响应字母的位置上进行修改数量 对于$[l,r]$的重排,对26个字母进行区间查询出现的数量,判断是否可以组成,如果可以组成,将$[l,r]$出现过字母的区间[l,r]赋值为0,然后根据字典序顺序对进行区间赋值操作 $m$次操作后,对每个位置查询是哪
阅读全文
[NOI Online #1 提高组] 冒泡排序
摘要:[NOI Online #1 提高组] 冒泡排序 树状数组or线段树维护逆序对 手推样例得到两个结论: 操作1会使逆序对发生$\pm 1$的变化 操作2,每一轮冒泡排序,会使所有逆序对 $ \geq 1$ 的数组的逆序对$ -1 $ 对于操作1,只需要算一下交换的两个数的大小,对总的逆序对的变化即可
阅读全文
[USACO08FEB]Hotel G
摘要:[USACO08FEB]Hotel G 线段树二分,最大字段和 对于操作二,是很简单的区间赋值 对于操作一,长度为$len$的,我们要找到最小的的 $x$ 满足 $[x, x + len -1]$ 的房间为空 在最大字段和的基础上,我们可以求出最长连续空房间的长度,对于要求长度为$len$的房间,可
阅读全文
[SCOI2010] 序列操作
摘要:[SCOI2010] 序列操作 在dls的数据结构中级课那学了最大字段和的线段树写法,对于这道题,我们要维护的信息有: 区间左边0/1的个数, 区间右边0/1的个数 区间最长0/1的长度 区间的赋值标记 区间的取反标记 整个区间的长度 对于 1 ~ 4 是很基本的最大字段和操作 对于 两种不同的标记
阅读全文
Educational Codeforces Round 2 个人总结A-E
摘要:Educational Codeforces Round 2 A. Extract Numbers 简单的模拟 bool check(string op) { if(op.size()==1&&op[0]=='0') return true; if(op.size()==0||(op[0]<'1'|
阅读全文
P4053 [JSOI2007] 建筑抢修
摘要:P4053 [JSOI2007] 建筑抢修 tag:贪心,堆 一个堆A以 T2 为关键字 从小到大排序,另一个堆B记录 已维修的 的建筑的维修时间,用 cnt 记录总的维修时间(时刻?) 两种情况: 若可以维修,cnt 加下维修时间。 若不可以维修,从B中获取最大值mav, 还是两种情况,(1)满足
阅读全文
DAG(有向无环图)拓扑排序 模板
摘要:应用: 判断有向图是否存在环 代码源图论初级课程题单报名免费 求一个图的拓扑序 在2.的基础上求字典序最小拓扑序,优先队列实现 拓扑排序板子: 选择入度为0的点作为起始点 // d代表入度,用vector存的图 void toposort() { queue<int> q; for(int i=1;
阅读全文
队列
摘要:队列先进先出,广度优先搜索可能用到 queue<int> q; 建立一个队列q,其内部元素的类型是int q.push(a); 将元素a插入到队列q的末尾 q.pop(); 删除队列q的队首元素 q.front(); 查询q的队首元素 q.back(); 查询q的队尾元素 q.size(); 查询q
阅读全文