摘要:
link Solution 考虑一种做法,因为合法答案值域里 \(42\) 幂次的个数很少,所以我们可以对于每一个位置记录它到下一个 \(42\) 次幂的差值,然后用线段树维护,然后每次赋值直接赋值即可,修改的话如果最小值 \(>v\) 直接打懒标记即可,否则就继续递归,如果一个区间值全都相同(真实 阅读全文
摘要:
link Solution 挺有意思的。 我们考虑如何进行暴力 dp。可以看出我们可以设 \(f_{i,l,r}\) 表示还剩区间 \([l,r]\) 没有进行匹配,然后你构造的字符串已经考虑了前面 \(i\) 位和后面 \(i\) 位的方案数。转移式比较显然就不列了。 考虑优化的话可以发现我们可以 阅读全文
摘要:
link Solution 我好蠢啊。。。 考虑如果x确定怎么办?我们可以直接递归,每次处理 \([l,r]\) 的最大贡献,然后找到在这个区间里面编号最小的区间,然后两边递归下去。考虑这样的复杂度,因为最多 \(\lfloor \frac{n}{x} \rfloor\) 个区间,所以复杂度是 \( 阅读全文
摘要:
link Solution 首先不难想到网络流的做法,即每个点 \(S\to i\) 连 \(p_i\),\(i\to T\) 连 \(s_i\),然后 \(i\to j(i<j)\) 连 \(c\),跑最大流即可。 考虑到最大流等于最小割,所以我们考虑用 dp 去优化网络流。我们可以发现我们从前往 阅读全文
摘要:
还是考虑分治,对于 \([0,r]\) 我们还是先考虑 \([0,mid]\) 对 \([mid+1,r]\) 的贡献,再考虑 \([mid+1,r]\) 对 \([mid+1,r]\) 的贡献,你发现就是你刚才求出来的东西再乘上前面一半的多项式,证明可以考虑你的系数转移式,可以发现跟 \(f\) 阅读全文
摘要:
link Solution 注意到不互质的数相对位置一定不改变,也就是说如果我们先手钦定了不互质的数之间的大小关系,那么后手一定是做一次 topo,每次选最大的出来。 那么,作为先手,我们肯定是选最小值当根,然后依次从小到大找能够当下一位的点连边,不过这里需要递归,而不能直接连,因为假如 \(1,2 阅读全文
摘要:
T1 Desription 定义长度为 \(n\) 的“好”的串 \(s\) 满足: \(|s_i-s_{i-1}|=1 ,i\in [2,n]\) \(s_i \geq \dfrac{g_{i-1}+g_{i+1}}{2}, i\in [2,n-1]\) 给你两个长度为 \(n\) 的序列 \(a 阅读全文
摘要:
T1 Solution 比较水,就不说了。 T2 Solution 就是暴力优化,不知道复杂度为哈对,代码也过不了,就不放了。 T3 Solution 考虑暴力,即每次每个点向可以一波传染的点连边,然后缩点,求无入度的点数即可。 考虑优化,你发现对于两个点可以在点分树上一个点考虑先走到该点再到另一个 阅读全文
摘要:
蚌埠住了,挂了 \(75\%\) 的分。 T1 Description 给出一个序列,分成若干段,把每段最大值取出来作为 \(B_{1,2,...,n}\),使 \(\sum_{i=2} ((B_i-B_{i-1})^2+C)\) 最大。 \(n\le 10^6\) Solution 考试的时候傻了 阅读全文
摘要:
link Solution 然而并没有做出来,听wy讲的。 我们考虑倒着来,那么我们只需要记录下哪些在后面会 pushdown ,这样这条边所增加的节点的权值就会增加子树内需 pushdown 的节点个数乘上增加的值。 然后注意到需 pushdown 的表达状态很少,所以我们可以进行最短路。 Cod 阅读全文