hdu5651(乘法逆元&&组合数)

题意:xiaoxin巨从小就喜欢字符串,六年级的时候他就知道了什么是回文串。这时,xiaoxin巨说到:如果一个字符串 SSS 是回文串,那么该字符串从前往后看和从后往前看是一样一样的。
六年级的暑假,xiaoxin很快就做完了暑假作业,然后到腾讯做起了实习生。这日,leader给了xiaoxin一个字符串,请xiaoxin帮忙写一个函数来生成所有可能的回文串,可以任意改变字符串的顺序但是不可以扔掉某个字符。并且leader告诉xiaoxin,每生成一个不一样的回文串就可以得到一颗西瓜糖。

请你帮忙计算xiaoxin的leader最多需要买多少颗西瓜糖呢

分析:回文串,只可能有一个字母的个数为奇数,所以有两个及两个以上的奇数个字母的情况直接输出0。先统计各个字母的个数,然后只需要求解一般的个数就行了,因为另一半是对称的。所以要算出每个字母个数一半的不想异的全排列就好了;求解的时候要求到除法取模问题,只需求解除数的逆元。

不想异的全排列公式   一共有n个数,k种,每种ni个球求全排列个数

逆元的求解方法  :求解n对于m的逆元只需求(n*x)%m=1。用扩展欧几里得来求解

扩展欧几里得算法如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值