题解 HYOI#13:2023/9/23CSP-S模拟赛

ranking
# 用户 名称 学号 总分数 #1 订货(goods) #2 模糊匹配(matching) #3 国境线(boundary) #4 小树精灵(tinytree)
1 ss23gzy ss23gzy 400 100 100 100 100
1 cyl001 蔡宜霖 400 100 100 100 100
1 2022sskly 康立扬 400 100 100 100 100
1 liguanliang 李冠良 400 100 100 100 100
1 sc211324 沈钊诚 400 100 100 100 100
1 2023ssmzx 马致迅 400 100 100 100 100
1 ss23yhj 袁煌峻 400 100 100 100 100
1 gzy 关哲允 400 100 100 100 100
9 caijianhong 蔡健泓 390 100 100 90 100
10 2022ss205 陈冠羽 375 100 100 100 75
11 2022ss201 夏文禾 370 100 100 70 100
11 sc211345 霍彦廷 370 100 100 70 100
11 ss23xlr 谢立仁 370 100 100 70 100
14 ss23lq ss23lq 300 100 100 - 100
14 pengshenghang 彭晟航 300 100 100 - 100
16 ss23scz ss23scz 220 90 30 - 100

A. 订货

枚举在哪一天出售,则购入的价格是前缀最大值。\(O(n)\)

B. 模糊匹配

暴力的复杂度正确,为 \(O(nL)\) 其中 \(L=100\)

C. 国境线

考虑先求出每个点到任意首都的最短距离,这个题叫“血色先锋队",就是将所有首都初始时直接入队。记录一下其中一个能到达它是最短距离的首都。

重新枚举每个首都,在它的搜索树上再跑一次,将那些在它搜索树上,但是它一开始搜索没记录到的点标记为答案,然后如果我搜之前这个点就已经是答案了,我就不搜了,因为前人已经将后面的可能答案全跑过了,一开始搜出来的东西对于每个首都而言是连通块。

\(O(nm)\)

D. 小树精灵

BZOJ4543

枚举每个点作为中心,以他为根搜索,然后相当于是它的每一个子树中选一个,一共选三个,是一个简单背包。\(O(n^2)\)

posted @ 2023-10-12 19:17  caijianhong  阅读(39)  评论(0编辑  收藏  举报