随笔分类 - 数据结构
摘要:Link:https://codeforces.com/problemset/problem/1492/B description: You are given a deck of cards, numbered from \(1\) to \(n\). For each time you can
阅读全文
摘要:Link:https://codeforces.com/problemset/problem/1487/E description: \(4\) kinds of dishes, each has \(n_i\) courses for \(i\in \{1,2,3,4\}\), we have t
阅读全文
摘要:Link:https://www.luogu.com.cn/problem/P3368 description: 实现一个支持动态区间修改(区间内的每个数增加常量), 和单点查询的数据结构. solution: Consider the difference, let \(a[0] = 0\), \
阅读全文
摘要:Trie树可以看做一种确定有限状态自动机(Deterministic Finit Automata) \((S, \Sigma,K,F, \delta )\) $其中, \ S是状态集(Trie树上所有的节点), \ \Sigma 是字母表{a,b,c,...,z}, \ K是起始状态(只有root
阅读全文
摘要:discription: 给定$n$项工作的起止时间, 每个工人同一时间最多干一件工作. 问做完这些工作最少要雇佣多少工人?(万恶的资本家) \(第一行一个整数 n,(1≤n≤100000),表示工作的数目.\) \(接下来 n 行, 第 i+1 行有俩整数 S_i, E_i, (0≤Si<Ei≤1
阅读全文
摘要:discription: 实现一个最小堆, 支持以下操作: +x: 添加一个数字 x, 保证 0≤x≤100. -: 删除堆里最小数字. 如果堆为空, 则什么也不干. ?: 输出堆里最小数字. 如果堆为空, 则输出 Error. solution: 一道裸的优先队列, 正好拿来练手~ 参考<<算法导
阅读全文
摘要:二叉搜索树可以用来排序: 1.每次插入一个数,(按小左大右的规则); 2.中序遍历. 实现代码如下: #include<cstdio> struct Node { int data; Node* p, * lchild, * rchild; }; class BST { private: Node*
阅读全文
摘要:链接:https://www.luogu.com.cn/problem/P3374 discription: 已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 input: 1 x k 含义:将第 x 个数加上 k 2 x y 含义:输出区间 [x,y] 内每个数的
阅读全文
摘要:链接:https://www.luogu.com.cn/problem/P1886 description: 有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个窗口从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 solution: 以最小值为例, 维护一个
阅读全文
摘要:Stack 的实现: #include<iostream> template<typename T> class Stack{ public: Stack():top(NULL){} inline bool empty(){return !top;} inline T getTop(){return
阅读全文