20210927AM

预期 实际 \(\Delta\)
A 100 100 0
B 100 100 0
C 100 0 -100
D 10 29 +29
E 50 100 +50
总计 360 329 -31

A Largest Rectangle in a Histogram

单调栈板子

B 没有上司的舞会

树形\(DP\),\(f_{u,0}\)表示以\(u\)为根的子树在不选\(u\)时最大快乐指数,\(f_{u,1}\)为选\(u\)的最大快乐指数,转移:

\[\begin{aligned} f_{u,0}=\sum \max(f_{v,0},f_{v,1})\\ f_{u,1}=\sum f_{v,0} \end{aligned} \]

C 阶乘分解

题目:将\(n!\)分解为\(\prod p_i^{c_i}\),输出\(p_i\)和\(c_i\)

可以\(O(n)\)筛出\(n\)以内的所有质数,那么问题在于\(c_i\)如何求

在1~n中一共有\(\lfloor \frac{n}{p_i} \rfloor\)个数是\(p_i\)的倍数(分解后至少有一个\(p_i\)),在其中又有\(\lfloor \frac{n}{p_i^2} \rfloor\)个数至少含另一个\(p_i\),以此类推

所以\(c_i=\displaystyle\sum_{p_i^k\leq n} \lfloor \frac{n}{p_i^k}\rfloor\)

D 欧拉回路

没有SP的欧拉回路就是耍流氓

E 括号配对

题目:输入一个括号序列,求至少添加几个括号能使括号匹配

灵感来源:\(CQOI2007\ \ paint\)

第一想法肯定是想贪心的,但是贪不动,显然也不可能搜,不太会剪枝

然后想\(DP\),从而联想到上面的题

设\(f_{l,r}\)表示将\([l,r]\)的括号匹配掉需要加几个括号,那么有

\[f_{l,r}= \begin{cases} f_{l+1,r-1}\ \ s_l \ \ match \ \ s_r\\ \min(f_{l,k}+f_{k+1,r}) \end{cases} \]

上一篇:Linux系统及第三方应用官方文档


下一篇:个人....LATEX常用数学符号