- 博客(7)
- 收藏
- 关注
原创 [数论数学]反演卷积的应用-快速求和化简
可以说是卷积和反演的综合应用一、整除分块(数论分块)补充一点基础知识…具体来说就是:如果我们要求∑i=1n⌊ni⌋\sum \limits_{i=1}^n\lfloor\frac{n}{i}\rfloori=1∑n⌊in⌋,并不需要用朴素算法O(n)O(n)O(n)去求,可以加快速度。定理1:所有1≤i≤n1 \leq i \leq n1≤i≤n的⌊ni⌋\lfloor\frac{n...
2019-03-24 21:58:49 698
原创 AT3536: Bichrome Tree(树形动态规划+贪心)
双色树-提高组圆桌班(2019.3.16 T4)题目大意:洛谷AT3536 Bichrome Tree给定一个含有nnn个结点的以111为根的树,并给定一个数值ViV_iVi,你需要将树上每个结点染成黑色或白色,并为每个结点附加一个非负整数权值WiW_iWi,要求:使得以每个点xxx为根节点的子树TxT_xTx中,与xxx同色结点的权值和(包括自身)恰好等于VxV_xVx,也就是∑i...
2019-03-24 08:54:23 285
原创 [数论数学]莫比乌斯反演定理
近期学习了莫比乌斯反演,算是一个学习笔记吧…在这里首先要说明:1:本文讨论的所有函数为数论函数,即定义域为D=N∗D=N^*D=N∗的函数;2:∑d∣nf(d)\sum \limits_{d|n}f(d)d∣n∑f(d)表示ddd取遍nnn的所有正因子,再将所有的f(d)f(d)f(d)相加,例如当n=6n=6n=6时,∑d∣nf(d)=f(1)+f(2)+f(3)+f(6)\sum \l...
2019-03-13 20:35:42 935 1
原创 [数据结构]链表、邻接表
注意,本文的链表用数组来模拟实现,代码中不涉及指针。在讲解这个内容之前,先来回忆数组能够完成哪些操作:(1)任意访问一个元素,时间复杂度为O(1)O(1)O(1);(2)删除一个元素,要移动此后的所有元素,时间复杂度为O(n)O(n)O(n);(3)在任意位置之后增添一个元素,要移动此后的所有元素,时间复杂度为O(n)O(n)O(n);但如果我们的问题并不需要访问任意元素,只需要进行删除...
2019-03-01 18:51:23 350
原创 [数据结构]单调栈与单调队列
可能会用到的前置知识:栈与栈的应用队列与队列的应用有时候题目中可能会出现一些需要维护单调性的内容,例如最典型的滑动窗口最值问题等。又或者需要通过几维不同的单调性同时维护,那么这时单调队列可能会很有用处,将原有的高级数据结构需用O(logn)O(\log n)O(logn)的时间复杂度才能解决的问题简化到用较为容易写的单调队列在O(n)O(n)O(n)时间复杂度内完成。有时在一些序列问题...
2019-02-28 22:06:33 215
原创 [数据结构]队列与队列的应用
(在阅读前,建议先了解栈的相关内容)队列和栈同为线性结构中非常重要的两种,区别在于,栈是一种“先进后出”的数据结构,而队列“先进先出”。考虑问题:您需要写一种数据结构,维护一系列数,初始为空。定义其中一端为队头,另一端为队尾,要求提供三种操作:(1)格式:111 xxx,表示在队尾端处加入一个数xxx;(O(1)O(1)O(1))(2)格式:222,表示输出队头端的数,并将其删除;(O...
2019-02-27 21:06:49 528
原创 [数据结构]栈与栈的应用
栈是非常重要的线性数据结构之一,其中一端为栈顶,加入元素和取出元素全部在栈顶端进行,满足FILO(First In Last Out,先进后出)的性质。考虑这样一个问题:您需要写一种数据结构,维护一系列数,初始为空。定义其中一端为顶,另一端为底,要求提供三种操作:(1)格式:111 xxx,表示在最顶端处加入一个数xxx;(O(1)O(1)O(1))(2)格式:222,表示输出最顶端的数...
2019-02-26 21:12:45 312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人