04 2022 档案
摘要:~~题目连接就不放了,人类应该反对阴间题目描述~~ 下面给出一个作为正常人能够看懂的题面描述: 给一棵 $\text{trie}$ 树,可以删掉某一层的所有节点和边。 被删除的节点的子节点会代替当前节点,形成新的一层节点,如果有相同的可以合并。 求删掉哪一层边后合并出的 $\text{trie}$
阅读全文
摘要:前言 没脑子选手发现自己什么都不会 。。。 $\text{More and more vegetables, What should I do?}$ 正文 Trie 树简介 大概是人类的话都知道吧,所以就不讲了 QWQ Trie 树合并 定义:就是把两个 $\text{Trie}$ 树进行合并的操作
阅读全文
摘要:题目链接 首先看到题目中定义的每一个粽子的价值: 选两个整数数 $l, r$ 。 满足 $1 \leqslant l \leqslant r \leqslant n$ 。 将编号在 $[l, r]$ 范围内的所有馅儿混合做成一个粽子。 所得的粽子的美味度为这些粽子的属性值的异或和。 看到有关异或和的
阅读全文
摘要:题目链接 首先,这道题看上去就是个博弈论,很显然的 $Nim$ 游戏。 因为每一个的取法都和它的上一位有关。 有一种非常显然的转换方式 :我们把这若干堆石子从前向后做一个差分 。 我们记 $a_i-a_{i-1}=b_i$ 题目转化成: 对于若干堆石子,第 $i$ 堆石子的个数是 $b_i$ ,问先
阅读全文
摘要:前言 没脑子选手今天模拟赛 $\text{T1}$ 暴力发现树的重心不会求了就来看一下。 正文 计算以无根树每个点为根节点时的最大子树大小,这个值最小的点称为无根树的重心。 性质一 树的重心的最大子树大小不大于整棵树大小的一半。 性质二 树至多有两个重心。如果树有两个重心,那么它们相邻。 此时树一定
阅读全文
摘要:题目描述 我们考虑如何把问题转换成博弈论来求解。 我们对于每一行之前都加上一个空格。 设原来这一行的空格个数是 $C$ ,那么此时空格个数变成 $C + 1$ 。 然后按照从左到右的顺序给每一个空格标号。 接着构建出一个数组 $p_i$ 。 $p_i$ 表示从第 $i$ 个空格开始后面有多少个连续的
阅读全文
摘要:前言 没脑子选手随便一道博弈论都不会 …… 正文 Nim 游戏引入 这里给出最简单的 $Nim$ 游戏的题目描述: $Nim$ 游戏 有两个顶尖聪明的人在玩游戏,游戏规则是这样的: 有$n$堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿),没法拿的人失败。 问最后谁会胜利。 结果是:当
阅读全文
摘要:题目链接 前言 发现自己三岁时的题目都不会做。 我发现我真的是菜得真实。 正文 神仙构造,分讨题。 不敢说有构造,但是分讨我只服这道题。 看上去像是一个类似 $Nim$ 游戏的变种,经过不断猜测结论无果后果断弃疗。 ~~(然后我就出门右转直接进了题解区)~~,在这里记录一下自己的理解。 设 $l_{
阅读全文
摘要:前言 没有什么意外,发现学过的东西又忘了。 我真的是 AH 第一没脑子选手。 正题 相对于传统的高斯消元,约旦消元法的精度更好、代码更简单,没有回带的过程。——某洛谷博客 算法流程 约旦消元法大致思路如下: 选择一个尚未被选过的未知数作为主元,选择一个包含这个主元的方程。 将这个方程主元的系数化为1
阅读全文
摘要:题目链接 前言 在这里分享两种的做法。 一种是我第一直觉的 模拟退火。~~(也就是骗分)~~ 还有一种是看题解才搞懂的神仙折半搜索加上 dp 。 模拟退火 众所周知,模拟退火 是我这种没脑子选手用来骗分的好算法。 具体呢就是通过不断随机,来不断接近所谓的正解。 不得不说,那个调参是真滴恶心,经过我不
阅读全文
摘要:前言 若干年前看过现在又忘了。~~这么简单都忘~~ 所以今天来重新复习一下。 正题 考虑这样的问题: 给定 $n$ 个物品的价格,你有 $m$ 块钱,每件物品限买一次,求买东西的方案数。 $n\leq 40$,$m\leq 10^{18}$。 在看到数据范围之前,所有人的想法都是直接背包,看到数据范
阅读全文
摘要:第二类斯特林数 定义第二类斯特林数 $ \begin{Bmatrix} n\ m\ \end{Bmatrix}$ 表示 $n$ 个元素划分成 $m$ 个集合,每个集合非空的方案数。 我们直接考虑第二类斯特林数的递推式子。 考虑当前的这个元素是不是独立成为一个集合。 如果是独立的可以从 $\begin
阅读全文
摘要:思路分析 自认为是一道很好的思维题。 直接看上去的想法是: 跑一个生成树,每一次加的边颜色交替进行,直到拉出生成树。 仔细想想,发现可能无法保证最后是一棵树而不是森林,也是说输出都是 $-1$ 。 然后,我这个弱智就没有任何思路了。 这时,想起“拖帝”的名言:正难则反。于是考虑先筛去不合法的情况。(
阅读全文
摘要:老是忘记怎么用,自己写一个用作备忘录吧。 首先需要的头文件: #include <random> 或者是 #include <bits/stdc++.h> //万能头 yyds 先制定随机种子(关系到之后的随机数) std::mt19937 myseed(114514); 对于一般的情况,我们只需要
阅读全文