ABC245 做题记录
目录
A - Good morning
比大小
B - Mex
求一个序列的 mex,暴力
C - Choose Elements
设 \(f_{i,0/1}\) 表示第 \(i\) 位放 \(a_i\) 或者 \(b_i\) 的话前 \(i\) 位是否合法。
转移条件是绝对值差 \(\le K\) 直接转移即可,最后判断 \(f_{n,0/1}\) 是否有一个合法即可。
D - Polynomial division
给定多项式 \(A\) 和多项式 \(C\),求多项式 \(B\),已知 \(A * B = C\)。
因为
\[\begin{aligned}
c_{n+m} & = b_m \times a_n \\
c_{n+m-1} & = b_{m-1} \times a_n + b_{m} \times a_{n-1} \\
c_{n+m-2} & = b_{m-2} \times a_{n} + b_{m-1} \times a_{n-1} + b_{m} \times a_{n-2} \\
\cdots & = \cdots
\end{aligned}
\]
从上向下推下去即可。
注意要倒着,正着的话存在 \(a_0 = 0\) 就会寄掉!
E - Wrapping Chocolate
把两种点先按照 \(x\) 一维从小到大进行排序,
从小到大枚举第二种点 \(b_i\),把第一种点中 \(x\) 值 \(\le b_{i.x}\) 的加进去。
然后第二种点匹配的时候,要找能匹配的点中 \(y\) 最大的。
不难发现这样贪心匹配是对的。
因为后面的第二类点已经保证了 \(x\) 值比当前这些大,但是并没有保证 \(y\) 值比当前这些大。
F - Endless Walk
板子题。
缩点之后建反图跑一边拓扑排序即可。
G - Foreign Friends
(补题)
多源最短路。
建一个超级源点把所有 popular 的人连起来。
对于每个点维护两个 \(dis\) 一个是被自己国家的更新的,另一个是被其他国家的更新的。
然后跑一边最短路 dij or spfa 做完了。
现在是 8:09 我开始写,我看我什么时候写完。
现在是 8:30 我写完了,但是 WA 28。
看来眼题解好像不能这样记录,需要把被哪个国家更新的存下来。
记录一个最短路和次短路,同时记录国家。
转移的时候注意最长度和次长路记录的国家不能相同。