随笔分类 - 做题记录
摘要:我不会高妙建树做法。喜提最劣解。差点被卡常,但是过了,赢。 考虑从后往前 dp,\(dp_i\) 为以 \(i\) 开头的路径方案数。考虑一个 \(i\) 能从哪些 \(j\) 转移来。发现 \(j\) 一定是从 \(i\) 开始,除了最后一个点,只经过 \(\le i\) 的点能到达的点。 这个条
阅读全文
摘要:先 orz oyds。但是为什么没有 oyds 的简单预处理做法啊。 区间 dp。\(dp_{i,j}\) 表示凑出区间 \([i,j]\) 的最小代价。考虑枚举当前区间 \([i,j]\) 与 \(k\),表示 \([i,j]\) 在区间 \([p,j]\) 中出现了 \(k\) 次,且 \(p\
阅读全文
摘要:挺高妙的题,思维套结论。 题意:给定 \(n\) 个数,求在其中选三个不交的子集,使得其异或和相等的方案数。 三个不交的集合异或和相等 \(\Leftrightarrow\) 两两异或和为 \(0\)。 观察两个异或和为 \(0\) 的集合 \(S,T(\not=\varnothing)\) 和答案
阅读全文
摘要:标题 from 题目背景。 题意:给你一个 DAG 然后在这个图上加一条边,加完之后不一定是 DAG。求满足如下条件的树的数量: 每个父亲到它的儿子们都有一条边。 先考虑是一个 DAG 的情况。发现答案即为 \(\prod in_i\)。原因显然。 麻烦的情况是它不是 DAG。发现多出来的非法的情况
阅读全文
摘要:题意:定义 \(f_i\) 为 \(\max\limits_{u\in subtree(i)} dis_{i,u}\)。要求维护 \(\oplus_{v\in s\rightsquigarrow t}f_v\),支持换根。 这题意写得自己大脑萎缩了。 换根?做CF916E就会了。\(f_i\) 怎么
阅读全文
摘要:这是一篇决策单调性题解,好像现在还没有相同做法的题解。 还是类似的分治方式,每次点分成左右两半求两边贡献,再处理跨区间贡献。 但是有一种新的处理贡献方式:决策单调性。 先将两边点各自按照纵坐标升序排序,然后对每个左半边的点找最近的点。怎么找呢?考虑设置两个指针,分别指向纵坐标升序的左边第 \(i\)
阅读全文
摘要:看到很大的范围限制,很容易想到数位 dp,记录当前 \(mod\ X\) 的值。但是 \(X\) 会非常大,复杂度爆炸。 考虑不用数位 dp 怎么做。容易想到直接枚举 \(X\) 倍数然后判断是不是只用了所给数字。这样又因为 \(X\) 可能非常小,再次爆炸。 想到可以结合一下两种方法,考虑根号分治
阅读全文
摘要:一种更简单的想法,只用用分块思想(或者根号分治?)不用分块。 先考虑暴力怎么做:修改直接改,查询不停跳下一个点。但这样会被卡到 \(O(n^2)\)。 考虑分块思想优化:如果保证每次至少跳 \(\sqrt n\) 的距离,总复杂度就会降到 \(O(n\sqrt n)\)。 于是可以维护每个点开始至少
阅读全文
摘要:STL 大法好! 常见套路1:区间没有相同元素->\(\min\limits_{l<=i<=r}(suf_{a_i})>r\) 常见套路2:值域上连续一段->\(\max-min=r-l\) 因为带修,1 的修改可以用 set 维护。为防止爆空间,用个 map 类似离散化。 其他直接线段树。 1:
阅读全文

浙公网安备 33010602011771号