摘要:
对于每一个左端点,考虑其右边那些能更新答案的点 先考虑在其右边且值比当前大的,小的可以将值翻转后做一遍 即对左端点 $i$,找到 $j i$ 满足 $a_j a_i$ 首先找到一个 $j$,下次在 $j$ 右边找到一个 $k$ 满足 $a_j a_k a_i$ 但是这样的点对还是有很多,考虑找下个 阅读全文
摘要:
看到式子的形式,可以想到斐波那契数列的通项的形式 设 $f_n = \left(\dfrac{b+\sqrt d}{2}\right)^n + \left(\dfrac{b \sqrt d}{2}\right)^n$ 这两个是方程 $x^2 bx+\dfrac{b^2 d}{4}=0$ 的两根 根据 阅读全文
摘要:
询问具有可减性,可以差分 $$\begin{aligned} & g(l_1, r_1,x)\times g(l_2,r_2, x) \\=& (g(0,r_1,x) g(0,l_1 1,x)) \times (g(0, r_2, x) g(0, l_2 1, x))\\=& g(r_1,x)\ti 阅读全文
摘要:
转化成dfs序上的问题,变成区间加和区间kth 可以用分块+二分,通常复杂度为 $O(m\sqrt{n\log n}\log n)$,这道题里被卡掉了 设块大小为 $B$,每一块内保持有序 修改时整块打上标记,零散块就现在有序表里分裂成两个序列,一个在修改的区间内,一个在修改的区间外,区间内加上值, 阅读全文
摘要:
忽略不能取同一根的要求。 构造多项式 $A(x) = \sum x_{a_i}$ 那么 $A^2(x)$ 就是取两个木棍,组成长度为 $s$ 的方案。 容斥后得到 $$(\sum x)^2 = \sum x^2 + 2\sum xy$$ $$\sum xy = \dfrac{(\sum x)^2 \ 阅读全文
摘要:
无向图的最大团可以转化为补图的最大独立集,而对于B的补图是一个二分图,二分图的最大独立集等于顶点数减去最小点覆盖,而最小点覆盖又等于最大匹配,那么就是求B图的最大匹配 而A图要求选一个奇数一个偶数,那么最多就只能选两个 暴力枚举选哪些,再在B图上跑匈牙利,用时间戳优化,就不用每次都memset了 阅读全文
摘要:
只需要找到长度为 $3$ 的等差子序列即可,可以枚举每一个位置,用bitset预处理出左边有什么值以及右边有哪些翻转的值,然后再与一下,复杂度是 $O(\dfrac{n^2}{32})$,但是它T了 不需要求出具体公差是啥,那么我们看当前位置 $i$ 的值 $x$,$1$ 到 $i 1$ 中 $[1 阅读全文
摘要:
考虑从 $5$ 下手 把状态设为 $f_{a_1,a_2,a_3,a_4,a_5,type}$ 表示当前剩下 $i$ 次涂色机会的颜色种类数为 $a_i$,而最后一个颜色用的是上一轮剩下 $type$ 次涂色机会的 记忆化搜索即可 对于这种数据范围小的,可以考虑多设几个维度方便DP 阅读全文
摘要:
维护一个栈,从任意一个节点开始 dfs,在回溯时加入到栈中。 dfs每一个子树之后,若相对于刚进入该节点时栈的大小,新增加的节点超过 B,就将它们分为一块 这样分完保证不超过 2B,而整个dfs结束之后,若栈中还有节点,就把它们归为最后一块 阅读全文
摘要:
DP题从来就是不会的。。。 对于波浪序列看成若干条链,s,t 不计入链中,最终序列就是 $0$ 条链 设 $f_{i,j}$ 为插入前 $i$ 个数之后有 $j$ 条链的情况 最后加入 $n$ 只能合并 s,t 所在的链,而他们不在链中 所以答案就是 $f_{n 1,0}$ 若 $i$ 不是 s 或 阅读全文