NOI2020 VP 记

Day1 打得比较差,T1 40(忘了写环的10pts),T2 64(本来只想要50的),T3 36(有一个点T了,可能块长不够优)。

Day1T1 美食节

正解想了好久好久都想不到,确实套路见少了——题解区清一色是“受到某某原题的启发”。

看到 \(T\le 10^9,w\le 5\),我想到的不是矩阵快速幂,而是同余最短路??!当然是没有任何逻辑性可言,所以也想不下去。

那么以后看到 \(f_i\) 只和 \(f_{i-\text{little constant}\sim i}\) 有关的时候,就往矩阵方面想。

这样每段快速幂一次,\(O((5n)^3K\log T)\),75 分就到手了。

剩下的部分是一个非常巧妙的套路,我完全没见过。

如何进行 \(K\) 次矩阵快速幂,而做到 \(O((5n)^3\log T+(5n)^2K\log T)\) 的复杂度呢?

事实上,我们可以用倍增代替快速幂,这样预处理的复杂度就是 \(O((5n)^3\log T)\) 的,与 \(K\) 无关。这样的目的在于,查询时就可以变成行向量乘矩阵,从而降掉一个 \(n\)

posted @ 2023-06-04 22:04  pengyule  阅读(16)  评论(0编辑  收藏  举报