摘要:
在一张$n*n$的棋盘上有一枚黑棋子和一枚白棋子。白棋子先移动,然后是黑棋子。白棋子每次可以向上下左右四个方向中任一方向移动一步,黑棋子每次则可以向上下左右四个方向中任一方向移动一至二步。当某游戏者把自己的棋子移动到对方棋子所在的格子时,他就赢了。两个游戏者都很聪明,可以获胜时会尽快获胜,必输时会尽量拖延时间。试判断谁会赢,需要多少回合。 阅读全文
摘要:
有一棵$n$个节点的无根树和$m$个操作,且每个节点有一个颜色。操作有两种:一种是将两点树上路径之间所有点染成颜色$c$,另一种是询问两点树上路径之间颜色段的数量。 阅读全文
摘要:
"点此看题面" 大致题意: ~~ 算法标签——语文 ~~,给定一个数列,多组询问,每次询问一个区间内的众数出现的次数。 莫队 这道题的算法应该是 " 莫队 " 。 如何用莫队求解此题 我们可以用$cnt$数组记录下每个数出现的次数(注意要先离散化),用$tot$数组记录下每个数在$cnt$数组中的出 阅读全文
摘要:
给你一片基环外向树森林,如果选定了一个点,就不能选择与其相邻的节点。求选中点的最大权值和。 阅读全文
摘要:
"点此看题面" 大致题意: 有一张有$N$个点和$M$条边组成的 有向图 ,若从$1$号点到$N$号点的最短路径长度为$d$,问有多少条从$1$号点到$N$号点的路径长度不超过$d+K$。若有无数条输出$ 1$。 第一步:最短路 既然要求的是长度不超过$d+K$的路径条数,显然我们要先求出$d$,因 阅读全文
摘要:
2018.10.03 NOIP+ 模拟赛 解题报告。 阅读全文
摘要:
让你求出一段区间内与$7$无关的数的平方和。与$7$无关的数指整数中任意一位不为$7$、整数的每一位加起来的和不是$7$的整数倍、这个整数不是$7$的倍数。 阅读全文
摘要:
"点此看题面" 大致题意: 给你一张$n$个点、$m$条边的无向图,让你找出图上的一条 不经过重复节点 的最长路(提答+$spj$)。 随机化乱搞 针对这种提答题,我们就要用 随机化 乱搞( "Cptraser" 大佬说他可以直接$O(n^2)$求出答案%%% )。 首先,我们随机一个节点作为 起点 阅读全文
摘要:
有$n$个物品,每个物品有两个属性且只能选择其中的一个,要求选择的物品属性值从$1$开始递增,问最多能选多少个。 阅读全文
摘要:
NOIP模拟赛 捌 解题报告。 阅读全文
摘要:
"点此看题面" 大致题意: 有一个序列,三种操作。$INSERT$操作是在 原数列 第$i+1$个元素之前插入一个新元素$k$,$MIN$_$GAP$操作是查询相邻两个元素的之间差值的最小值,$MIN$ _$SORT$ _$GAP$操作是查询所有元素中最接近的两个元素的差值。 两棵平衡树 这道题我们 阅读全文
摘要:
有一个$N*N$的$01$矩阵,可以任意交换若干行和若干列,问是否有方案使得左上角到右下角的连线上全是$1$。 阅读全文
摘要:
看到那种给你两个数,让你求这两个数之间符合条件的数的个数,且这两个数非常大,这样的题目一般就是数位$DP$题。数位$DP$一般都用于计数。 阅读全文
摘要:
树形$DP$,顾名思义,就是在树上操作的$DP$,一般可以用$f_i$表示以编号为$i$的节点为根的子树中的最优解。转移的时候一般都将信息由子节点转移到父亲节点,也就是将信息从下往上转移。因此,一般树形$DP$都会采用递归的形式。 阅读全文
摘要:
状压$DP$应该是一个比较玄学的东西。由于它的时间复杂度是指数级的(但也足以吊锤$DFS$),所以状压$DP$题的数据范围一般都巨小。 阅读全文
摘要:
本篇文章主要讲述一些关于位运算的简单变换操作。 阅读全文
摘要:
位运算,是程序设计的一个重要领域,将数字转化为二进制之后再按位进行运算,效率高,是编程的一个重点知识。 阅读全文
摘要:
2018.10.05 TOPOI提高组模拟赛 解题报告。 阅读全文
摘要:
给你一个$2*n$的扫雷棋盘,现让你根据第二列的信息确定第一列有多少种摆法。 阅读全文
摘要:
点此看题面 大致题意: 给你一棵带权树,已知每连接一条边需要一定花费,如果某个叶节点能到达根,可以获得一定收益。问在不亏本的情况下,最多能使多少个叶节点能到达根。 树上背包 这是一道比较经典的树上背包题。 如何记录状态 我们可以用$f_{i,j}$表示在以$i$为根的子树内选择$j$个叶节点能得到的 阅读全文
摘要:
"点此看题面" 大致题意: 给你$n$个关键词和一个文本串。让你求出这些单词在这个文本串中总共出现次数(一句话中同一单词只算一次)。 细节 这题其实还是比较水的,一道很简单的 "$Trie$" 题(~~数据范围这么小,貌似暴力照样过~~),~~居然还能是一道蓝题~~。 但是,这题还是有很多细节的,大 阅读全文
摘要:
点此看题面 大致题意: 求一个字符串中有最长的长度为偶数的回文串,它的一半也是回文串。 $Manacher$算法 这应该是$Manacher$算法一道比较好的入门题,强烈建议在做这题之前先去学一学$Manacher$算法。 大致思路 如果你会$Manacher$算法,其实这题的思路应该还是比较清晰的 阅读全文
摘要:
"点此看题面" 大致题意: 让你在一张$N M$的棋盘上摆放炮,使其无法互相攻击,问有多少种摆法。 辟谣 听某大佬说这是一道 状压$DP$ 题,于是兴冲冲地去做,看完数据范围彻底懵了:$N≤100$!这么大的数据范围压死你! 好吧,其实这就是一道普通的$DP$,与状压没有任何关系。 ~~其实状压可以 阅读全文
摘要:
$Manacher$算法,又称马拉车算法,是解决回文问题的利器,在字符串题中也非常常用。最重要的是,它是个简单易懂的算法。 阅读全文
摘要:
给你一棵带权树,每次使用道具可以将某条边的边权加$1$,问你至少需要使用多少次道具,才能使每个叶子节点到根节点的距离相等。 阅读全文
摘要:
"点此看题面" 大致题意: 有$N$个学生去食堂打饭,每个学生有两个属性:打饭时间$a_i$和吃饭时间$b_i$。现要求将这些学生分成两队分别打饭,求最早何时所有人吃完饭。 贪心 首先,依据贪心的思想,肯定是吃饭时间长的先打饭,因此可以将其按吃饭时间先排序预处理一遍。 如何$DP$ 贪心完,就是$D 阅读全文
摘要:
"点此看题面" 大致题意: 求出一个矩阵中所有$n n$正方形中极差的最小值。 另一种做法 听说这题可以用 单调队列 去做,但是我写了一个 二维$RMQ$ 。 二维$RMQ$ $RMQ$相信大家都会的,而 二维$RMQ$ 其实与普通$RMQ$是没什么区别的。 我们可以用$Max_{i,j,k}$来表 阅读全文
摘要:
"点此看题面" 大致题意: 给你一棵树,问长度为$K$的路径至少由几条边构成。 点分治 这题应该比较显然是 " 点分治 " 。 主要思路 与常见的点分治套路一样,由于$K≤1000000$,因此我们可以考虑开个桶$f$数组来记录 每种长度的路径至少由几条边构成 。 但是要注意, 每换一个根要将桶清空 阅读全文
摘要:
在我的心目中,点分治是一个非常难的算法,但在解决一些树上问题时也非常实用。为此,我特地去学了学点分治这个高深的算法。 阅读全文
摘要:
"点此看题面" 大致题意: 小$A$要从$1$号节点到$n$号节点,已知他每个单位时间可以跑$2^k$千米,求他最少需要多少个单位时间。 预处理 由于数据范围较小,我们可以先大力预处理。 首先,将题目中给出的边边权初始化为$0$。 若从一点出发,到两点皆有一条边权为$w 1$的边,就将这两点之间连一 阅读全文
摘要:
让你模拟一个游戏猪国杀的过程。 阅读全文
摘要:
$WQS$二分听起来是个很难的算法,其实学起来也并不是那么难。 阅读全文
摘要:
$KD-Tree$是一个十分神奇的东西,其实本质上类似于一个$K$维的二叉搜索树。 阅读全文
摘要:
$NOIP2018$初赛已经结束了,接下来就要准备复赛了。不过,在此之前,还是先为初赛写一篇解题报告吧。 阅读全文
摘要:
这里以一道求乘法逆元的模板题(【模板】乘法逆元)为例,来讲一讲求一个数乘法逆元的三种经典解法。 阅读全文
摘要:
扩展欧几里得算法是一个很好的解决同余问题的算法,非常实用。(该算法的升级版徐xgcd有待XRY奆佬发明) 阅读全文
摘要:
"点此看题面" 大致题意: 给定一个序列,每个元素有两个属性$a_i$和$v_i$,每次操作改变两个元素的位置,求每次操作后$\sum{v_i+v_j}[ia_j]$。 关于题意的解读 其实,题目差不多就是让我们求 逆序对 (只不过每个逆序对有一个权值)。 这会让我们联想起一道题目: "【洛谷315 阅读全文
摘要:
树套树是一个十分神奇的算法,种类也有很多:像什么树状数组套主席树、树状数组套值域线段树、$zkw$线段树套$vector$等等。不过,像我这么弱,当然只会最经典的 线段树套$Treap$啦。 阅读全文
摘要:
$Splay$是平衡树中的一种,除了平衡树所共有的作用之外,它还可以维护区间翻转,这也是它能成为$LCT$辅助树的原因(不过$LCT$并不是这篇博客所探讨的内容)。 阅读全文
摘要:
$Treap$这个名字真的挺有内涵:$\color{red}{Tree}$+$\color{blue}{Heap}$=$\color{red}{Tre}$+$\color{blue}{eap}$=$\color{red}{Tr}\color{purple}{e}\color{blue}{ap}$这很形象地告诉了我们:$Treap$是$Tree$(二叉搜索树)与$Heap$(堆)的结合体,这也是$Treap$能够平衡的关键。 阅读全文