
20200823腾讯笔试题
发布日期:2021-05-08 01:41:31
浏览次数:19
分类:原创文章
本文共 595 字,大约阅读时间需要 1 分钟。
题目描述:
现有n个人,要从这n个人中选任意数量的人组成一只队伍,再在这些人中选出一名队长,求不同的方案对10^9+7取模的结果。如果两个方案选取的人的集合不同或选出的队长不同,则认为这两个方案是不同的。
分析:
因为选择过程与顺序无关,从n个不同元素中取出m个元素的组合数为c(n,m)。则总的方案数为
1 * C(n,1)+2 * C(n,2)+3 * C(n,3)+4 * C(n,4)+…n * C(n,n)
根据数学公式推导,最终上面组合式结果为n2^(n-1)。
思路:因此问题转化为求 n2^(n-1)。为了降低时间复杂度可用 快速幂
代码如下:
mod=1000000007def Method(n): res=n*MyPower(2,n-1) print(res%mod)def MyPower(a,b): level=a result=1 while(b!=0): if ((b&1)==1): result = result * level % mod level=level * level % mod b = b>>1 return result%modif __name__=="__main__": n=int(input()) Method(n)
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月05日 10时22分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
shell编程(六)语言编码规范之(变量)
2021-05-08
vim杂谈(三)之配色方案
2021-05-08
vim杂谈(五)之vim不加载~/.vimrc
2021-05-08
Linux杂谈之终端快捷键
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
vimscript学习笔记(三)信息打印
2021-05-08
awk杂谈之数组习题
2021-05-08
Linux网络属性配置详解
2021-05-08
Python(三十)类的理解
2021-05-08
Extjs布局详解
2021-05-08
Android数据库
2021-05-08
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2021-05-08
keil左侧文件调整方法
2021-05-08
本地分支关联远程分支
2021-05-08
STM8 GPIO模式
2021-05-08
STM32boot启动
2021-05-08
回调函数(callback function)
2021-05-08
omnet++
2021-05-08
23种设计模式一:单例模式
2021-05-08