2024.9.25训练记录

上午 whk

下午 noip模拟

T1:结论题。考场想不出来。
只需要顺序做第一个1前的数。
原因:考虑三个数时的情况。
顺序是 \((a^b)^c\) 或者 \(a^{(b^c)}\)
相当于,比较 \(b^c\)\(bc\) 的大小。显然有:
\(b,c \geq 2\) 时,\(b^c \geq bc\)
所以按照正常顺序做,在 \(A_i \geq 2\) 时最优。
当出现 \(1\) 时,后面就不用做了。所以结论就是顺序做到第一个 \(1\)

考场一眼30的部分分是一个 \(O(n^3)\) 区间dp。感觉不可能优化到 \(O(n)\)。就寄了。

T2:简单题。考场忘开LL挂20
注意到加边时,比原生成树上大的边不会造成影响。所以最后的生成树一定就是原来那棵。
于是模拟 kruskal 连边过程。
可以在当前并的两个集合之间连满权值大于当前边权的边。
直接模拟这个过程有80分(注意启发式合并)。
注意到挂在存下来所有M-m条边的空间不够,所以将 \([1, M]\) 用原图的 \(m\) 条边分成 \(m+1\) 个区间,就能存下来。
用了 set 存边和 lowerbound。加上启发式合并,总复杂度 \(O(nlog^2n)\)

T3:聪明题。考场拿了30pts暴搜。
盖一次印章就相当于可以花费一个次数走到点旁边的一个边长为 \((2*n+1)\) 的正方形去掉四个最边上的点。
这个奇怪图形可以拆成四个边长小2的正方形的并。
于是盖一次印章相当于可以在这个正方形里八连通无花费走完。
这样写01BFS就行。(不能带log)

T4:不会。

posted @ 2024-09-26 08:59  docx君  阅读(12)  评论(0)    收藏  举报