CTS2019 / CTSC2019」随机立方体

2024-03-08 23:48

本文主要是介绍CTS2019 / CTSC2019」随机立方体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意

有一个 n × m × l n\times m\times l n×m×l的立方体,在其中填上 1 − n × m × l 1-n\times m\times l 1n×m×l的数,求刚好有k个数满足:这个数大于与其至少有一维相同的所有数的概率。(有 T T T组数据)

范围

n,m,l<=5e6,k<=100,T<=10

题解

首先%一下神犇xjq
吐槽一下数据范围,为什么k要<=100啊,甚至%50的数据范围给了k=1,害我考场上一直往k=1上想,然后自闭了。。。
其实还是我太菜了,根本没有往容斥上想,(此处总结:计数类问题想不出来就往容斥想)。因为直接刚好有k个数满足肯定不好限制,故考虑至少有k个数满足(其实这不严格,应该说考虑重复下的概率,因为有重复,所以容斥时要乘组合数),于是强制让k个一定满足,其他的不考虑,开始大力写式子吧。
可这还是好难啊。。。于是先考虑至少一个的情况,考虑这一个有 n × m × l n\times m\times l n×m×l种位置,对于每种位置,考虑它满足条件的限制,即为与它至少有一维相同的数都比它小,那这样的概率要怎么算呢?考虑这其实就是它为一些数中的最大值,在没有其他限制下,概率自然就是1/集合大小,于是再乘 n × m × l n\times m\times l n×m×l的位置种数,即为至少有一个的概率。(当时听到这里有一个疑问:为什么概率可以大于1?因为这是假的啊,它多算了后面的对它的很多影响,这其中有很多重复的情况,所以容斥时才要乘上组合数)
那么考虑至少有k个,从大到小考虑(肯定要确定一个顺序嘛)。对于最大的那个,就按照至少有一个的计算,对于第i大的,它可以放的位置就是 ( n − i + 1 ) × ( m − i + 1 ) × ( l − i + 1 ) (n-i+1)\times (m-i+1)\times (l-i+1) (ni+1)×(mi+1)×(li+1)种,而它要满足的条件是大于所有比它小的限制,因为是并集,故考虑用总的减去没有限制的交集,集合大小为 n × m × l − ( n − ( k − i + 1 ) ) × ( m − ( k − i + 1 ) ) × ( l − ( k − i + 1 ) ) n\times m\times l-(n-(k-i+1))\times (m-(k-i+1))\times (l-(k-i+1)) n×m×l(n(ki+1))×(m(ki+1))×(l(ki+1))

这篇关于CTS2019 / CTSC2019」随机立方体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788827

相关文章

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中,优化算法被广泛应用于训练神经网络模型。随机梯度下降法(SGD)是最常用的优化算法之一,但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应对这些挑战,动量法应运而生。本文将详细介绍动量法的原理,包括动量的概念、指数加权移动平均、参数更新等内容,最后通过实际示例展示动量如何帮助SGD在参数更新过程中平稳地前进。

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

HDD 顺序和随机文件拷贝和存储优化策略

对于机械硬盘(HDD),顺序拷贝和随机拷贝涉及到磁头的移动方式和数据的读取/写入模式。理解这些概念对于优化硬盘性能和管理文件操作非常重要。 1. 顺序拷贝 定义: 顺序拷贝指的是数据从硬盘的一个位置到另一个位置按顺序连续读取和写入。这意味着数据在硬盘上的位置是线性的,没有跳跃或回溯。 特点: 磁头移动最小化:由于数据是连续的,磁头在读取或写入数据时只需要在磁盘的一个方向上移动,减少了寻道时

算法:将数组随机打乱顺序,生成一个新的数组

一、思路 核心:缩小原数组的可随机取数范围 1、创建一个与原数组长度相同的新数组; 2、从原数组的有效的可取数范围 (不断缩小) 中随机取出一个数据,添加进新的数组; 3、将取出的随机数与原数组的最后一个数据进行置换; 4、重复步骤2和3。 二、代码 public class ArrayRandomTest {//将数组随机打乱顺序,生成一个新的数组public static int

Midjourney 随机风格 (Style Random),开启奇幻视觉之旅

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:       Midjourney 最近推出了 "Style Random"(随机风格),这项功能可以让我们使用独特的随机 sref 代码创建图像,从而每次都能获得不同的美感。通过对这些功能的探索和尝试,我发现了一些很棒的风格,我很高兴能与大家分享,这样可以节省大家的时间,不用自己动手测试。在本文中,我将展示十个M

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。