poj 1496&1850

本文分享了一种解决特定组合问题的方法。通过对字母排列问题的详细分析,总结出处理首位、末位及中间位置的不同策略,并介绍了如何计算组合数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

终于做出来了,不禁长舒一口气。

历时+-8小时,倍感压力巨大。

接下来说说我的心得吧:

  • 这题用到的是组合的知识;
  • 处理第一位字母时,需要计算之前的字母排序数,第一位有其特殊之处:如:bcd,处理b位时,前面有 口??,和a??两种情况,我们只要处理2次就可以了;
  • 处理末位时,只要计算(当前位字母-前一位字母)即可;
  • 处理首末之间位置时,就要考虑两种情况:比如bexy,处理e位时,1.口??,这一种对于每一位计算都需要;2. c??、d??,而这一种,就要看前一位和当前位了,之间有几个字母,就有几个排序。
  • 对于排序,这样计算Cmn(该符号为组合数表示),n是 26-当前位字母序数(在字母表中的序数),m是 len-i-1 (len是字符串长度,i是字符串下标(即当前处理位))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值