博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5793 - A Boring Question
阅读量:6176 次
发布时间:2019-06-21

本文共 1581 字,大约阅读时间需要 5 分钟。

HDU 5793 - A Boring Question

题意:

  计算 ( ∑(0≤K1,K2...Km≤n )∏(1≤j<m) C[Kj, Kj+1]  ) % 1000000007=? (C[Kj, Kj+1] 为组合数)

    
分析:

  利用二项式展开: (a + b) ^ n =  ∑(r = 0, n) (C[n, r] * a^(n-r) * b^r )

    
    化简:
           ∑(0≤K1,K2...Km≤n )∏(1≤j<m) C[Kj, Kj+1]
    
         = ∑( Km = 0, n ) ∑( Km-1 = 0, Km ) ∑( Km-2 = 0, Km-1 )...∑( K1 = 0, K2 ) ( C[Km, Km-1] * C[Km-1, Km-2] *...*C[K2, K1]  )
           
         = ∑( Km = 0, n ) ∑( Km-1 = 0, Km )C[Km, Km-1]  ∑( Km-2 = 0, Km-1 )C[Km-1, Km-2] ... ∑( K2 = 0, K3 )C[K3, K2]  ∑( K1 = 0, K2)C[K2, K1]   //后面的积可分别提到和式前面
                                                                                                                                    
         = ∑( Km = 0, n ) ∑( Km-1 = 0, Km )C[Km, Km-1]  ∑( Km-2 = 0, Km-1 )C[Km-1, Km-2] ... ∑( K2 = 0, K3 ) ( C[K3, K2] * 2^K2 )  

                                                           // ∑( K1 = 0, K2)C[K2, K1]  为(1 + 1) ^ k2 的二项式展开

                                                                                                                                    
         = ∑( Km = 0, n ) m ^ Km          //∑( K2 = 0, K3 ) ( C[K3, K2] * 2^K2 ) 为 (1 + 2) ^ k3 的二项式展开 ,接下来依次向上化简
         
         = ( m^(n+1) - 1 ) / ( m - 1 )   //等比数列求和公式
         
    接下来求快速幂和逆元即可.

  (博客园怎么连个公式编辑器都没有= =)

1 #include 
2 #include
3 using namespace std; 4 #define LL long long 5 const LL MOD = 1000000007; 6 LL PowMod(LL a, LL p, LL MOD) 7 { 8 int res = 1; 9 while(p)10 {11 if(p&1) res = (res * a) %MOD;12 p >>= 1;13 a = (a * a) % MOD;14 }15 return res;16 }17 int t;18 LL n,m;19 int main()20 {21 scanf("%d",&t);22 while(t--)23 {24 scanf("%lld%lld", &n, &m);25 LL ans = PowMod(m, n+1, MOD);26 --ans;27 LL inv = PowMod(m-1, MOD-2, MOD);28 ans = (ans * inv) % MOD;29 printf("%lld\n",ans);30 }31 }

 

转载于:https://www.cnblogs.com/nicetomeetu/p/5741774.html

你可能感兴趣的文章
我的友情链接
查看>>
乔布斯走了,苹果会坠落吗?
查看>>
java高级_01
查看>>
win8重装成win8.1后把hyperv的虚拟机导入
查看>>
linux命令汇总(mkdir、rmdir、touch、dirname、basename)
查看>>
mv或者cp带小括号文件名解析问题总结
查看>>
Elasticsearch学习笔记3: bulk批量处理
查看>>
EBS12.2.5 升级到EBS12.2.6的问题及跟踪处理
查看>>
网站访问流程
查看>>
java的日志工具log4j的配置方法
查看>>
jQuery on()方法
查看>>
步调一致才能得胜利
查看>>
mysql 锁机制
查看>>
add_header X-Frame-Options "SAMEORIGIN";NGINX
查看>>
linux中的计划任务
查看>>
Android style报错
查看>>
Lintcode130 Heapify solution 题解
查看>>
【Map】Map、HashMap
查看>>
解决纯数字字符串在js方法参数中不稳定或被截取的问题
查看>>
如何在VMware安装Windows系统
查看>>