11 2024 档案

摘要:感觉这种题就是很套路的玩意,但是想了好久,还是做题做少了。 从贪心的角度考虑,假设我钦定了要选某个数,我该选哪一个呢?显然选择靠前的肯定不会比靠后的更劣。我们当然要选所有能选的数中最靠前的两个。 使用状压 dp,设 fS​ 表示已经选择过的数字集合为 S 时最靠后的已选数位置。我们先预处理出每个数出 阅读全文
posted @ 2024-11-23 07:31 MrPython 阅读(5) 评论(0) 推荐(0)
摘要:题目本身没啥意思,就是维护个矩阵区间乘法,上个线段树做完了。 我更想说说这个标题是啥意思。 半群说的是一个集合 S 和一种二元运算 ∘。若运算 ∘ 满足以下条件: ∘ 具有封闭性,即 ∀x,y∈S,x∘y∈S ∘ 满足结合律,即 ∀x,y,z∈S,(x∘y)∘z=x∘(y∘z) 则称 ⟨S,∘⟩ 为 阅读全文
posted @ 2024-11-20 23:09 MrPython 阅读(5) 评论(0) 推荐(0)
摘要:怎么搞的,为什么好多大佬都在这里爆炸了? 对于 b>0,其最终效果一定是将所有不小于 n 的数变成在 0 到 n−1 中没有出现的数。应用乌姆·尼克算法二分找到有多少个数小于 n,剩下的数都要操作各一遍。 b=0 需要稍微处理一下: c≥n 时,初始数组内的所有数都大于等于 n,需要各操作一遍,共 阅读全文
posted @ 2024-11-11 18:51 MrPython 阅读(7) 评论(0) 推荐(0)
摘要:本题两种情况分类讨论。设有 x<y<z。 当 x⊕y⊕z=0 时,1 到 x−1 的所有数都是 0。我们可以二分出第一个 i 使得 ask(1,i)=0,x 即为 i。询问次数为 log2​n。 当 x⊕y⊕z=0 时,直接二分就不好使了。不过仔细分析一些例子可以发现:一定可以找到一个 p,满足 阅读全文
posted @ 2024-11-08 20:45 MrPython 阅读(8) 评论(0) 推荐(0)
摘要:这个题还真挺不错的,值得补出来! 我们可以钦定任意一点的颜色(取值为 [0,k)),然后沿着边的方向对其他点染色。具体地,第设 u 个点的颜色为 cu​,且有一条边 u→v,则 cv​=(cu​+1)modk。这个图上的所有环长度都是 k 的倍数,因此一定可以按照上述规则对该图染色。 一个图有且仅有 阅读全文
posted @ 2024-11-07 17:03 MrPython 阅读(5) 评论(0) 推荐(0)
摘要:线段树优化选择排序 让我们回顾一下选择排序的过程。 选择排序(英语:Selection sort)是一种简单直观的排序算法。它的工作原理是每次找出第 i 小的元素(也就是 Ai..n​ 中最小的元素),然后将这个元素与数组第 i 个位置上的元素交换。其最优、平均、和最坏时间复杂度均为 O(n2)。 阅读全文
posted @ 2024-11-06 11:36 MrPython 阅读(7) 评论(0) 推荐(0)
摘要:赛时做不出来一点,赛后补不出来一点,丢给某个小朋友被一下子秒了,赶紧退役吧。 通过惊人的注意力,我们发现:操作 第(i+2)modn,(i+4)modn,(i+6)modn,…,(i−3)modn,(i−1)modn 项各一次,其结果为第 i 和 (i+1)modn 项分别增加 1、而其余位置分别增 阅读全文
posted @ 2024-11-06 07:31 MrPython 阅读(10) 评论(0) 推荐(0)