【递推法】错排问题的递推式和推导过程

约瑟夫问题及其变种(递推法)全网最详细讲解 约瑟夫问题(递推法)全网最详细讲解 为什么写这篇文章? 做刘汝佳老师的训练指南的UVAlive-4727这一题时又一次遇到了约瑟夫问题,之前训练指南的例题部分有讲过约瑟夫问题,刘汝佳老师讲的不是很清楚,就只记了公式,没有深究了。但是又一次遇到这个问题,而且在原来的要求上增加了新的要求,于是就又想了想。 在网上查了一些文章,实在是看不懂,写的太不友好了。不知道是他们也没有理解透彻,还是我太笨了。于时... 阅读详情

【递推法】错排问题的递推式和推导过程

  前言:这篇博客是帮助没有见过错排的新人更好的理解错排问题的递推式和推导过程,各位大佬可自行跳过
题目链接:洛谷P1595信封

一、错排问题的定义:

  很多人(包括我之前)对错排的理解都是:
    现在有n个球和n个箱子,第i个球不能放进第i个箱子里,那么有多少种放法
  这样理解当然没错,但是如果出现这样的情况:
    3个球,第1个球不能放入第3个箱子,第2个球不能放入第1个箱子,第3个球不能放入第2个箱子。求放法数
  是错排吗?我们发现其实还是一道错排,虽然第i个球可以放入第i个箱子内,但是每个球都和一个另外箱子建立起了不能放的关系。
  所以我们发现:
  如果每个球都和一个箱子建立起不能放的关系,那么这就是一个错排问题(不管球和箱子的编号是否相同)
  (不过注意,每个球只能和一个箱子建立这种关系,每个箱子也只能和一个球建立这种关系。否则会出现有箱子所有球都可以放的情况)

二、前铺的数学知识:

  理解了错排的定义后,做出这道题还要用到一点数学知识:加乘原理(纯小学数学,可以直接跳)
  简要的说一下加法原理和乘法原理(因为实在是太简单):
  加法原理:若一个问题从多种情况中选择,则解法数是每一种情况的方法数之和。 加法原理就类似于"从…或…情况选择一种"
  乘法原理:

青蛙过河 [递推法] 计算并输出最多能有多少只青蛙可以根据以上规则顺利过河?有一条河,左边一个石墩(只青蛙要过河(从左岸石墩。区),右边有一个石墩(只青蛙可以按照规则过河。你的任务是对于给出的。 阅读详情

相关推荐

斐波那契数列递推法与动态规划实现

斐波那契数列(Fibonacci sequence)是一个起源于13世纪的数学序列,在数学领域,特别是在组合数学中占有特殊的地位。这个序列是由意大利数学家莱昂纳多·斐波那契(Leonardo Fibonacci)在1202年提出,最初用以模拟兔子的繁殖问题。数列的定义如下:除了第一个和第二个数是1以外,每个后续的数都是前两个数的和。因此,斐波那契数列的前几项为:1, 1, 2, 3, 5, 8, 13, 21, …

weixin_32242475的博客 836

本体研究综述(转)

(这篇文章是从http://imarine.blog.163.com/中转载过来的,个人觉得对本体的介绍比较全面!)本体综述本体作为一种能在语义和知识层次上描述领域概念的建模工具,其目标是捕获相关领域的知识,确定该领域内共同认可的词汇,通过概念之间的关系来描述概念的语义,提供对该领域知识的共同理解。语义Web(the Semantic Web)是在本体理论基础之上对现有Web所进行的扩展[

zhenshideni611的专栏 1838

告别倍福开发板:手把手教你用SSC工具为STM32生成EtherCAT从站代码

本文详细介绍了如何使用SSC工具为STM32生成EtherCAT从站代码,帮助开发者在不依赖倍福开发板的情况下实现高效的工业以太网通信。通过SSC工具的配置、XML文件设计、代码移植与硬件适配等步骤,开发者可以轻松构建自定义的EtherCAT通信系统,提升工业自动化项目的灵活性和效率。

weixin_33925615的博客 410

思博伦Spirent TestCenter创建单播流uni-stream

Traffic Generator列表中会出现刚才创建的uni-stream,创建完成。通常测试情况下,主要对Ethenet II和IPv4 Header进行配置。(通常情况下,如果流配置比较规范,选择任意端口接收,也没问题。编辑uni-stream基本信息。配置本条流由STC哪个端口接收。

辗转反测的博客 1681

使用Dify搭建音频文件转文本工作流

使用Dify搭建音频文件转文本工作流

zyx_bx的博客 5623

物理机centos7系统重启后直接进入dracut

Warning: /dev/centos/root does not exist Warning: /dev/mapper/centos-root does not exist 在shell命令行执行以下: dracut:/# lvm vgscan dracut:/# lvm vgchange -ay dracut:/# exit 之后可以正常进入系统(测试正常)。 但是重启之后依然会进入dracut模式,永久解决如下: 查看kernel文件 [root@ecs ~]# ls -ltrh /boot

魏志标的博客 1万+

squidpy 教程 2:利用 Scanpy 和 Squidpy 进行空间数据的可视化分析

本教程详细介绍了如何利用Squidpy和Scanpy对空间转录组数据进行可视化分析。通过将Scanpy处理得到的聚类结果映射回原始组织图像,并结合基因表达与空间邻域信息,帮助研究者直观揭示细胞类型分布、基因表达模式及空间相互作用,从而深入挖掘空间组学数据的生物学意义。

weixin_29081703的博客 446

2025年CSP-J复赛真题及题解:T4 多边形(polygon)

2025年CSP-J复赛真题及题解:T4 多边形(polygon)

王老师青少年编程 1718

【ACP】2025-最新-疑难题解析-1

即用户手动释放时,因实例释放保护开启,不会释放该 ECS 实例(不同云厂商具体实现有差异,但题目场景下选 C )。结合题目中标记,答案为。综上,答案选 B。综上,答案选 C。综上,答案选 D。综上,答案选 A。综上,答案选 A。综上,答案选 C。综上,答案选 D。综上,答案选 A。

jundao1997的专栏 365

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

下一篇: NOIp2001 数的计算
诚哥不写C++
博客等级 码龄7年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值