其他-私人♂收藏

OwO

03.03 [USACO19JAN]

A. Redistricting

题意:给 \(g\) ,求 \(f(n)\)\(f(i)=f(j)+[g(i)\ge g(j)],j \in (i-k,i]\)

离散化之后线段树优化 DP ;或者发现额外贡献最多只有 \(+1\) ,单调队列。

B. Exercise Route

题意:给一棵树和一些路径,求有边交的路径的对数。

把与 LCA 关联的点都 \(+1\) ,查询除 LCA 外路径上的点。这样除了两条路径 LCA 相同的情况外是没有问题的。相同的时候开 map 暴力统计答案,也可以科学一点,最后把每个点作为 LCA 对应的一堆二元组排序再统计答案。

C. Rain Tracking 2

题意:给 \(k\) ,以及 \(c_i=\min\{a_{i},a_{i+1},\cdots, a_{i+k-1}\}\) ,求合法 \(a\) 序列数量。

连续 \(l\) 个相等的 \(c_i\) ,设 \(x=10^9-c_i\) ,方案数是 \(f(l)=\sum_{j=1}^{k}x^{j-1}f(i-j)\) ,扰动一下得到 \(f(l+1)=(x+1)f(l)-x^kf(l-k)\)

相邻的 \(c_x>c_i\) 时,发现可以确定 \(c_i\) 对应区间一个 \(a\) 的值,并且另外 \(k-1\) 个位置要满足的限制是 \(\ge c_x\) 。当前讨论的是 \(c_i\) 的贡献,所以长度 \(l\) 应该减去 \(k\) ,然后再统计答案。

多个部分的答案乘起来就是最终答案。

猜你喜欢

转载自www.cnblogs.com/ghcred/p/10471247.html