前三题为水题,后面两题更有意思。
然而代码全都咕咕咕了,也许以后会补。
Hdu1520 Anniversary party
简单树形DP。
Hdu6386 Age of Moyu
简单最短路。
bzoj3679 数字之积
简单数位DP。
CF Gym 101482G Gathering
首先对于每个点,可行的区域显然是个矩形,那么可以先对这些矩形求交,得到合法区域。
如果不考虑限制,那么最优点显然是\(x,y\)的中位数。
考虑限制之后,只要定下\(x\),那么最优的\(y\)也是确定的。
而且,可以证明,这一定是一个凹函数,可以三分。
那么就做完了。
T5
首先发现一件事:一个点的权值就是原点走到它的方案数。
换句话说,就是\(\frac{(\sum x)!}{\prod x!}\)。
考虑\(x!\)中\(p\)的个数,有一个这样的式子:
\[ ans=\sum_{i>0} \lfloor x/p^i\rfloor \]
考虑把\(x\)在\(p\)进制下拆开为\(x=\sum_i w_i\times p^i\),那么有
\[ ans=\sum_{i>0} w_i\sum_{k=1}^i p^{k-1}=\sum_{i>0}w_i\frac{1-p^i}{1-p}=\frac{1}{p-1}(x-\sum_{i} w_i ) \]
也就是只与\(x\)和\(x\)的数位和有关(记数位和为\(f(x)\))。
那么一个点的权值不含有\(p\),当且仅当\(f(\sum x)=\sum f(x)\),也就是所有\(x\)加起来没有进位。
那么就可以数位DP了:把所有\(n\)维放在一起DP,记录当前到第几位、之前哪些维顶到了上界。
每次做一位时相当于做个背包,但似乎转移时需要差分以降低复杂度。
最后需要容斥一下搞掉下界,也许也可以把是否顶到下界压进状态里。
并不知道复杂度是多少qwq
upd:似乎可以把下界压进状态里,而且这样就由\(4^n\)变为了\(3^n\)。(如果有同时顶到上下界的可能就单独计算?)