04 2022 档案
摘要:假设值域很小我们想一下怎么做。 当然是枚举 。 直接做一个高维后缀和,然后求出 的最大值即可。 如果 是某些数的 那肯定没问题,如果不是那么一定会有一个更强的来干掉 。 然后就 干掉了
阅读全文
摘要:来考虑一件事情 把打牌的顺序串起来,这肯定是一条长度为 的链。 然后相当于是在这个序列上面填数。 胜利的条件就是有一个前缀有 个 ,且 的数量分别不超过 。并且容易发现一个序列肯定只对应一种牌序。 第一件事肯定是枚举这
阅读全文
摘要:诈 骗 题 我一直以为是 DP 什么的有性质,结果发现是道诈骗题,什么性质都没有。 首先特判掉全 串。有一个结论:全场最佳只有可能是两个字符串组成的。 随便证明一下。设 是长度为 的前缀, 是长度为 的后缀。 首先对于 \(S[i
阅读全文
摘要:我甚至以为 能把这题草过去 这种东西一看就很势能。。。两只 log 的做法就是对每一位开一个 ODT,然后变成区间加区间最值。 仔细想想,取 or 和 and 相当于是高维的 max 和 min,搞不好可以用区间取 min 和 max 那一套来维护。 那一套
阅读全文
摘要:300iq牛逼 神仙题。。。第一眼就觉得不可做。。。 首先众所周知这玩意儿是个和 有关的凸函数。( 固定) 然后。。。区间问题一般都比较无从下手,所以考虑使用数据结构维护。首选线段树和猫树。 如果是猫树的话感觉需要写动态凸包,常数过大直接放弃( 所以考虑线段树。设 \(f[
阅读全文
摘要:该死的破题意 题意:给出一车不等式,问有多少种不同的可能的包含 个 和长度为 的排列,将符号插入排列后不会与给定的不等式冲突。 定义两个包含不等号和排列的“序列”相同的条件为不等号和排列能够推出的不等式相同。 首先给出的不等式中等号屁用没有,用并查集缩在一
阅读全文
摘要:太厉害了。。。 首先看到这种题第一眼就是 DP, 表示 子树有 个伐木场。 然后发现不会计算贡献。不会计算贡献可以考虑加状态强制算贡献,或者提前计算费用。 很容易想到的是 表示在上面状态的基础上加一个 所在连
阅读全文
摘要:场外选手再次口胡 这种东西如果是链就很好做,并且有链的部分分。。。那么就照着这个方向想想吧。 考虑计算对于一个序列,全部都被填了数字的方案数。 容易发现枚举最大值有很简单的 做法: \(\sum_{x=0}^{\infty}\prod_{i=1}^{n}(\min(x+K,r_i
阅读全文
摘要:第一眼看到题感觉有点儿怪。。。 先想一件事情:我们需要什么? 如果有一个物品的体积为 ,那么令一个数不断地加上 ,最后一定会回到 。 而对于一堆物品,一定存在一个 和这一堆物品等价。 容易发现,如果我取 个 相当于取了一个 \
阅读全文
摘要:妈的这玩意儿实在是太神秘了。。。一会儿对x排序一会儿对y排序,一会儿建凸包一会儿李超树。。。 这些细节性的东西还是写一个总结为好。不然以后一直犯要吃大亏。 众所周知斜率优化的方程都能够写成类似 。即一个一次函
阅读全文
摘要:场外选手口胡 如果对质因子这方面熟悉的可以看出来,相当于是我有一车集合,每次给定一个集合,问你有多少种方法选择若干集合使得或起来为给定集合。 首先传统艺能压状态数,将 全部变为 ,很明显不影响。我们将相同的数丢到一个桶里面。然后将这个数的权值
阅读全文
摘要:感觉怪怪的(?) 题意有点儿类似给区间加上一个一次函数,然后询问一个区间的最值。 不妨来考虑一下一次函数具有单调性。对于一个询问区间,被一个一次函数完全包含时,这个一次函数的极值只有可能是这个区间的左端点或者右端点。 对于非链顶部分,查询相当于前缀查询。如果我们只在这个一次函数的端点上加上权值,那么
阅读全文
摘要:。。。 别的基于分治的算法和数据结构的本质都比较明确:线段树的本质是可以通过快速合并左右区间的信息,来达到快速维护区间答案的目的,k-dt的本质是通过巧妙的划分降低高维问题查询区间的代价,点分治的本质是能够快速合并两组路径,通过分治的方法不重不漏地统计所有点对的路径信息。 那么,线段树分治的本质是什
阅读全文
摘要:ETT模板。 题意:维护一颗动态树,支持: 换父亲,换根,子树乘,子树求和。 ETT 实际上是用平衡树去维护这颗树的欧拉环游序。但是因为是欧拉环游序,所以是可以随意循环位移的。为了方便,我们从 根节点第一次出现的位置 断开这个欧拉环游序。(欧拉环游序实际上应该是一条环,大部分时候我们都是人为地从根节
阅读全文
摘要:火车司机滚出秦川/fn/fn/fn 考虑把路径上的关键点拉出来建虚圆方树,这样做是 的。 对于虚仙人掌上的每一个点搞两个标记,一个记录子树内有几个走城市多的,一个记录子树内有几个走城市少的。树上差分一下就行了。 对原树上的方圆边记录两个权值:到环的根走城市少的福音的和城
阅读全文
摘要:迫真虚仙人掌 题意相当于求虚仙人掌的直径,但是我们只要知道了这颗仙人掌的圆方树就够了。 目标变成求虚圆方树。然后发现就是在圆方树上面跑一个虚树。如果一个环上同时出现了两个点就把这个环的方点也加到虚树里面去。 然后没了。 #include<algorithm> #include<utility> #i
阅读全文
摘要:神仙题。。。这就是ZJOI吗。。。 首先如果图是非仙人掌,答案一定为 。如何判断非仙人掌?删掉所有点双的边,然后数一下点双中的点和被删掉的边。 来考虑仙人掌的情况。仙人掌的环将整个图分成了若干颗树,在环上连边是没有意义的。所以只需要考虑树即可。 考虑意见很许可但是很重要的事情:将一棵树填充
阅读全文
摘要:qpOrzgyh20 考虑一个 DP:设有 条路径满足其中一个端点为 ,另一个端点在 的子树内。 先把圆方树建出来,在上面转移会方便一些。 对于方点不予考虑,直接考虑圆点。设对于一个圆点 的儿子集合为其儿子(方点)在圆方树上的儿子集合。(\
阅读全文
摘要:无内鬼,来个线性做法 发现是一个 sb 贪心,只需要保证下一个去的节点尽量小即可。 问题分为三个阶段:在一颗“子树”内,在环上,在别的“子树”内。(环上每个节点挂着一堆子树) 首先肯定从 开始搜。尽量走小的地方。 走到环上后需要决定走哪个方向,这个很容易。 在环上某个位置需要判定是否停下
阅读全文
摘要:对于每个串,找到第一次匹配成功的位置 ,然后求 上 的后缀与 的 LCP 之和。 答案一定是 的子串,但是找到的匹配的位置一定是 的子串。 考虑对 建立 ACAM,然后把 丢上去匹配。记录一个下标就
阅读全文
摘要:考虑哨卡将村庄分成了若干段,对每一段分别考虑。 我们先定义这个 swap 是有方向的,代价由我们制定的一个人来承担。 对于段内,将村庄分为三类:要去左边的段,要去右边的段,要留在这里。 在开始“正式移动”之前,我们可以对段内元素随意地移动,这样是不会有代价的。 将要去左边的村庄排在最左边,留在这里的
阅读全文
摘要:。。。去 darkbzoj 上面评测,评测机老是抽风给我 TLE。。。 好在如果寄了会读取上一次的结果,但是如果有人又交了一发就全部木大了/fn 尝试用一个极其奇怪的算法草过去 首先知道答案是 的形式,我们枚举这个 。当 时一定能在 ll 范围内搜出解,所以
阅读全文