分类 OI 下的文章

作者参加了 SSL-OI 夏日合宿,做了一套原题并口胡了题解,包括 T1 KC 看星、T2 KC 的瓷器和 T3 开心小屋。其中 T1 是搜索或枚举四个点判断两条直线的关系,T2 是分组背包,T3 是搜索和剪枝。

文章介绍了多种图计数问题及其解法,包括无向图计数、Prufer序列与无根树计数、二叉树计数、无向连通图计数、二分图计数、基环树计数以及一个期望题。无向图计数通过计算连边方式得出,Prufer序列用于证明Cayley公式,二叉树计数涉及Catalan数,无向连通图计数采用容斥原理,二分图计数通过染色方案数计算,基环树计数则涉及环排列。期望题涉及合法括号序的期望距离计算。

A 组选手在三道题中表现不佳,尤其是在失落情绪下导致一道结论题做错。B 组选手通过魔改 Floyd 算法解决了最优路线问题。C 组选手因未提交代码而未得分。

文章讨论了POI2018中的水箱问题(luoguP5952),该问题要求计算一个$n*m$方格水箱中,水位高度不超过$H$的情况下,有多少种不同的水位分布。文章提出了一种基于最小生成树的解决方案,通过从小到大枚举墙的高度,合并水域并计算答案。算法使用并查集来维护水域的合并,并通过优先队列来处理墙的合并顺序。最终,程序输出水位分布的总数,该数对$10^9+7$取模。文章还提到了一些实现细节,如数组大小和优化技巧。