5.30杂题选讲

前三题为水题,后面两题更有意思。

然而代码全都咕咕咕了,也许以后会补。

Hdu1520 Anniversary party

简单树形DP。

Hdu6386 Age of Moyu

简单最短路。

bzoj3679 数字之积

简单数位DP。

CF Gym 101482G Gathering

首先对于每个点,可行的区域显然是个矩形,那么可以先对这些矩形求交,得到合法区域。

如果不考虑限制,那么最优点显然是\(x,y\)的中位数。

考虑限制之后,只要定下\(x\),那么最优的\(y\)也是确定的。

而且,可以证明,这一定是一个凹函数,可以三分。

那么就做完了。

T5

链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4211

首先发现一件事:一个点的权值就是原点走到它的方案数。

换句话说,就是\(\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\)。(如果有同时顶到上下界的可能就单独计算?)

posted @ 2019-06-02 17:25  p_b_p_b  阅读(217)  评论(0编辑  收藏  举报