![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
原创
文章平均质量分 79
原神_267
别说了就我这硕士玩C++还没有开发者熟……
展开
-
随机树生成器
由于每个点 i 都不可能与小于 (i-1)/2 的点连边,因此会发现所有大于 i 的点都不可能与 i 不可能连到的点连边,因此我们可以发现 2 是无法与 1 连边的。经过我上面一番慷慨乱扯,可以发现 1 与 2 的性质就差在 (i-1)/2⌋∼−1⌊2i⌋∼i−1 与 i 有无连边了,这里必然不能鸡蛋里挑骨头地去想是不是可能用 1 生成时所有点都刚好选在了 1∼⌊ (i-1)/2⌋1∼⌊2i⌋ 里,想都不要想,这是纯属犯欠。就会发现,每一次选点的概率是一样的,只不过是值域不同而已。原创 2023-08-22 20:05:19 · 132 阅读 · 1 评论 -
田野 题解
同样不加证明(还是因为我不会证)地给出一个引理:如果某次合并的价值为负,而从中选出任何一个子集来单独合并的价值均不为负,则这次合并一定会进行。更强的结论是,如果某次合并的价值为负,且任意子集合并的价值都大于当前集合,且不存在两个不交的子集的合并价值都为负,那么这次合并一定会进行。如此一来,当我们某一次合并一个集合的时候,一定不会包含一个不以当前点为左下角的价值为负的子集(因为如果有这样的子集,它早在之前的dp中就已经被合并了),而这个集合又是以当前点为左下角的价值最小的集合,根据引理,它一定会被合并。原创 2023-08-22 19:58:33 · 38 阅读 · 1 评论