分类 OI 下的文章

本文主要介绍了数论中的一些基本概念和算法,包括素数判定、因数个数、线性筛、最小素因数、欧拉函数、欧拉函数线性筛等。同时,文章还给出了每个算法的复杂度分析和证明。

在SSL-OI夏日合宿中,参与者们面对了三道题目。T1是关于分火腿的问题,要求将火腿切成大小相等的份数,求最小切几刀,解法是输出$m-(n,m)$,其中$(n,m)$表示$n$和$m$的最大公约数。T2是关于工资分配的问题,要求将数组分成最多$m$块,求各块和的最大值最小,解法是二分答案并贪心遍历数组。T3是关于选择$k$个数使其$gcd$最大的问题,解法是记录每个值出现的次数,然后从大到小枚举答案,统计倍数出现次数的和,若大于等于$k$则为答案。整体而言,题目难度适中,参与者们在中午前就完成了所有题目的修改。下午计划修改昨天的题目,并关注NOI网络同步赛的情况。

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

文章讨论了SSL-OI夏日合宿2020.08.17 A组的三道题目。T1题要求根据边权求点权,解法涉及基环树和环上的k元一次方程组求解。T2题要求将数组分为两个上升子序列,使差值最小,解法涉及二分图染色和DP。T3题涉及序列操作,支持修改和查询,解法提出了树剖和树套树两种方法。文章还提到了出题人胡睿和博客更新情况。

SSL-OI 夏日合宿 A 组题目难度较低,前三道题是中山市选 2012 的原题,第四题是北爷出的附加题。作者 C 打挂,最后得分 180 分。下午发动学长限定技能,快速讲评快速下班。