01 2022 档案
摘要:link Solution 不难看出编号为 的服务员我们可以让他(她?)一定服务进来的编号 ,那么我们就可以对于每个服务员单独考虑,然后最后加起来即是答案。 考虑设 表示现在还有 个客户,该服务员还要继续工作
阅读全文
摘要:link Solution 我们可以发现的是,奶酪的投放顺序不会影响我们老鼠能否吃到的概率。考虑破环成链(编号 ~ ),然后我们可以设 表示第 段的奶酪个数, 为越过整圈的次数,那么对于第 只老鼠,它吃不到的概率就是:
阅读全文
摘要:link Solution 首先我们可以发现,对于任意一个选出来的物品序列,如果我们排序之后奇偶分类,那么分成的两堆一定相差 。 然后我们考虑dp,我们可以设 表示选 个物品,重量和为 的价值和最大值,那么对于 为偶
阅读全文
摘要:link Solution 我们考虑设 表示的是以 为根的子树, 连一条长为 的链的已选边的边权之和最大值。 考虑如何转移,我们可以设 表示儿子选了长度为 的链的个数减去长度为 的链的个数为 \
阅读全文
摘要:link Solution 不难看出,我们可以通过枚举 位置来确定每个位置的奇偶性,然后考虑如何对着我们构造的奇偶性来构造解。 不难发现,对于暗着的灯且奇偶性为奇数,我们肯定直接操作最优。然后对于当前没有暗灯且为奇数,如果存在暗灯且为偶数,那么两边一定存在一个亮的灯且奇偶性为奇数,那
阅读全文
摘要:link Solution 我们考虑如何判定一个序列是否合法,可以看出的是,我们可以枚举每个排列,如果当前我们构造的 K 失配了,那么我们就把排列中的下一位设为失配的该位值即可。如果存在一个排列使得可以走完整个序列,这个序列即为合法。 我们考虑设 表示的是第 位排
阅读全文
摘要:link Solution 首先我们考虑 的情况怎么解决,可以发现的是,我们设 表示从 出发的最大期望贡献,当 为最大值时 ,否则如果我们要停止,为 ,不停止为 \((f_{i-1}+f_{i+1})
阅读全文
摘要:link Solution 并没有想到分治,我果然是个屑。 我们考虑分治,那么问题就是如何合并两个有序子段。不难发现,一定是前一段的后缀移到后面去,后一段的前缀移到前面去,所以我们可以两段先反转,就变成了一段连续的下降子序列,再整体反转,那么又变成了子问题,继续分治即可。 用了一点小技巧卡到了LOJ
阅读全文
摘要:link Solution 比较懒,所以放了一个OJ里的链接。 这个题感觉还是比较可做。考虑如何判断一个是否合法,那么我们可以使用 dp,转移式即为: 那么,我们可以对此进行 dp,我们设 \(f_{i,j,0/1}\
阅读全文
摘要:link Solution 我,tr,废物。 不难看出的是,我们可以通过移动我们的游泳和小跳,使得我们游泳或小跳要么直接到一个岛屿的左端点(中间不能跳),要么先游泳或小跳再跳大跳到一个岛屿的右端点。然后我们可以直接进行dp了。 虽然说得很轻巧,不过实现起来需要智力,然而我没有。我们考虑到岛屿的左端点
阅读全文
摘要:link Solution 我们可以考虑把整个图分成若干个独立集(可以证明个数 ),然后考虑独立集之间查询边,然后你发现查询两个独立集之间的边的话我们可以通过递归,据说复杂度挺对的。 Code #include "meeting.h" #include <bits/st
阅读全文
摘要:link Solution 我们考虑解决从 用 中的点走的这样一个问题,那么对于一个点 ,我们肯定就可以通过叉积来判断哪些点在它前面,哪些点在它后面,从而继续递归。 复杂度 。 Code #include <bits/
阅读全文
摘要:link Solution 不难看出,对于任何确定性算法官方都能办法卡掉你,所以我们可以选择随机化算法。 不难想到统计一个人的错误率,然后对于每次进行加权,概率选择,这样就不好卡了。但是不是很清楚正确率如何保证这么高的,因为很可能出现集体翻车的情况,或许是官方数据造的比较善良吧。 Code #inc
阅读全文
摘要:link Solution 考虑对于当前还剩的价值和为 ,个数为 的情况,那么从概率上来讲,如果我们买,贡献即是 ,如果我们抽,那么贡献就是 。那么我们只需要计算出每种情况的概率即可,可以将组合数放入每次计算中以便减少
阅读全文
摘要:一些概念 基:组成一个空间的线性无关的一个向量集。比如 就是一组基。 基向量:组成基的向量。 坐标:我们可以理解为对于一个向量我们基里面的每个基向量构成
阅读全文