【考试总结】2021-03-28

A. 矩阵

考虑枚举一个矩形表示斜率,同时钦定这个矩形的两个端点必须选

不难发现这个矩形对角线上的点的个数是 \(gcd\texttt{(长,宽)}\)

这个结论的证明考虑 \(y=\frac{h}w x\)\(x\in [1,w]\) 中有几个点满足 \(y\in\{Interger\}\)

上下消掉 \(gcd(h.w)\) 之后在 \([1,w]\) 里面有 \(w/\frac{w}{gcd}\) 个数是它的倍数

\[ans=2\sum_d\binom{d-1}{k-2}\sum_{n}^{\lfloor\frac{N}d\rfloor}(N-nd)\sum_{gcd(n,m)=1}^{\lfloor\frac{M}d\rfloor}(M-md)+\texttt{点在一个直线上的方案} \]

提出来 \(\mu\),然后发现有两个乘积就行了

\[ans=2\sum_d\sum_{p|d}\mu (\frac{d}p) \binom{p-1}{k-2}\sum_{n}^{\lfloor\frac Nd\rfloor}(N-nd)\sum_m^{\lfloor\frac{M}d\rfloor}(M-md) +\texttt{点在一个直线上的方案} \]

B.覆盖

把区间按照右端点排序,从前往后扫,如果当前区间没有点,那么在右端点放一个

如是解决第一问,按照放点的位置,把这个段割成 \(n\) 个小段,每个段里面必然会有一个点

转移:相邻的两个点夹的一段区间,这段里面有一些询问的终点,在区间 \(mid\) 左侧的由上一个管,剩下的下一个管

具体就是 \(f[i]=\min\{f[j]\}+val(i,j)\),同时得到这个 \(val(i,j)\) 满足决策四边形不等式

那么使用分治实现决策单调性的 \(dp\)

具体而言,已知当前 \(dp[i][l\to r]\) 的决策点 \(\in [L,R]\),找到其 \(mid=\frac{l+r}2\) 的决策点然后两边递归即可

C.强壮

将原题中的限制修改为 \(\texttt{in or out}\),也就是相离或者包含

这个可以使用线段树或者单调栈进行简单处理,剩下的部分设 \(dp_{i,j}\) 表示处理到第 \(i\) 个点,这个点的有长度为 \(j\) 的右侧链

转移考虑枚举相邻的限制,合并右链长度,注意每次转移的时候先做一次当前的后缀和

\(dfs\) 实现 \(dp\) 就行了

posted @ 2021-03-28 19:59  yspm  阅读(58)  评论(0编辑  收藏  举报