先看题目:
题目描述:
有n个人站成一排,编号为1-n,现在将他们分成多组,每组的人的编号都是连续的(如3,4,5是连续的;1,3不是连续的),每组的人数不为空。问有几种分法
输入格式:
输入一个整数n
输出格式:
按题目描述输出
样例输入1:
4
样例输出1:
8
约定:
N<=5000
感觉题目没怎么看明白,迷迷糊糊
求此题思路(XJOI 7719)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- yyfhz 2022-01-30 16:23关注
先给LZ解释一下题目的意思。
假设现在有4个元素1,2,3,4排成1列,那么有多少种不同的集合取法呢:
第一种: {1},{2},{3},{4}
第二种: {1},{2},{3,4}
第三种: {1},{2,3},{4}
第四种: {1,2},{3},{4}
第五种: {1,2},{3,4}
第六种: {1,2,3},{4}
第七种: {1},{2,3,4}
第八种: {1,2,3,4}
请注意像{1},{3},{2,4}这样的分法是不合适的,因为{2,4}不是先后相连的同一串。
那么要怎么求总共的数量呢?
仔细观察就可以发现,当我们把一个解譬如{1},{23},{4}摆出来的时候,其实等价于在原数列
1,2,3,4上砍了2刀,一刀砍在1,2之间,另一刀砍在3,4之间,于是原数列就被 分成了1,23,4这样3段。
所以,所谓的有几个不同的解,就是我们有多少种不同的砍法。
换言之,就是我们可以在原数列中选择若干个逗号“,”进行切割,这样的逗号的选法有多少种。
第一种比较笨的解法是:n个数列一共有n-1个逗号,
我们可以有
选择0个逗号一共有C(n-1,0)种选法,
选择1个逗号一共有C(n-1,1)种选法,
选择2个逗号一共有C(n-1,2)种选法,
...,
选择n-1个逗号一共有C(n-1,n-1)种选法,
所以总共有C(n-1,0)+C(n-1,1)+C(n-1,2)+...+C(n-1,n-1)个解。
如果你熟悉二项式(a+b)^k的展开式C(k,0)a^0xb^n+C(k,1)a^1xb^(n-1)+C(k,1)a^2xb^(n-2)+...+C(k,k)a^kxb^0的话,用n-1代替k,并令a=b=1,可以有C(n-1,0)+C(n-1,1)+C(n-1,2)+...+C(n-1,n-1)=2^(n-1)。另外一种比较聪明的解法是,我们把这n-1个逗号排起来,选中要切割的标上1,没有选中的标上0,结果就是一个n-1位长度的二进制数,这样的二进制数一共有2^(n-1)个,所以有2^(n-1)种解法。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 angular开发过程中,想要读取模型文件,即图1的335行,会报404错误(如图2)。但我的springboot里配置了静态资源文件,如图3。且在该地址下我有模型文件如图4,请问该问题该如何解决呢?
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
- ¥100 H5网页如何调用微信扫一扫功能?
- ¥15 讲解电路图,付费求解
- ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
- ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常
- ¥15 Java,消息推送配置