永发信息网

分区联赛试题noi2004题:一、2. 由3个a,5个b和2个c构成的所有字符串中,包含子串“abc”的共有( )个。

答案:2  悬赏:0  手机版
解决时间 2021-05-14 10:52
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-05-13 13:57

怎么做

我看有的做法 什么 7!/(2!*4!)

这是什么意思

最佳答案
  • 五星知识达人网友:一秋
  • 2021-05-13 14:36

楼主的那个答案是错误,那只是答案的一部分,在下面的分析中有!


解法1:首先这个字符串长度为3+5+2=10。因为确定要包含“ABC”,所以将一个“abc”捆在一起,且站了3个位置;剩下7个位置可以放2个“A”,4个“B”和1个“C”。考虑“ABC”可出现在8个位置上,剩下的“A”可能的位置共有(7×6)÷(2×1)=21种,“B”可能的位置有5种,而“C”只能选剩下的一个位置,所以可算出所有可能性为:21×5×8=840种;


而这还不是最终答案,因为其中可能有两个“ABC”,而这种情况在上面的计算中被计了两次,所以需要算出有两个“ABC”的有几个。首先考虑两个“ABC”可能出现的位置组合,所以将“abc”捆在一起,捆杨两组,站了6个位置有(6×5)÷(2×1)=15种。再考虑剩下的1个“A”有4个位置,而“B”只能选剩下的3个位置,所以可算出有两个“ABC”的字符串有:15×4=60种故最终答案为840-60=780

解法2:一共 是10个字节
然后当abc在第一位时,后面一共有105种排列
(7!/(2!*4!)=105)(这就是楼主那个)
当abc在第二位时,也是105种
...
当abc在第八位时,也是105.
105*8=840种
里面有重复的,要减去,就是减去有2个字字串abc的.
一共60种
(6!/(2!*3!)=60)
所以840-60=780种

全部回答
  • 1楼网友:轻雾山林
  • 2021-05-13 15:03
你那答案正确吗?那个式子的意思是7的阶乘除以(2的阶乘与4的阶乘的积)…阶乘是指从1依次乘到这个数…如4!=1×2×3×4=24…
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯