zoukankan      html  css  js  c++  java
  • 计算系数 (codevs 1137) 题解

    【问题描述】

       给定一个多项式(ax + by)^k,给定a、b、k、n、m,请求出多项式展开后x^n y^m项的系数。

    【样例输入】

        1 1 3 1 2

    【样例输出】

        3

    【解题思路】

         本题为NOIP2011 提高组第一题,看到这玩意我懵了,本人初三狗,完全不会做啊……在老师的指导下终于觉悟,这玩意为二项式定理,其实就是求杨辉三角形的第k行,第n项,在老师推完之后还发现了,其实就是求C(k,m),C为组合数公式,我两种方法都试了,但似乎组合数取模与一半的不一样,于是WA了,顺便求一下哪位神犇看到了请指教一下……这里贴杨辉三角形的代码。求了这个以后,再乘上a^n*b^m即可,注意:a^n与b^m都要边乘边取模,杨辉三角形建立的时候也要取模,最后三者相乘还要取模……

    【代码实现】

     1 var f:array[0..1001,0..1001] of longint;
     2     a,b,m,n,k,i,j:longint;
     3 function fac(a,b:int64):int64;
     4 var t:int64;
     5     y:longint;
     6 begin
     7  t:=1;
     8  for y:=1 to b do
     9   t:=(t*a) mod 10007;//幂运算,注意乘一次就要取一次模
    10  exit(t);
    11 end;
    12 begin
    13  readln(a,b,k,n,m);
    14  for i:=0 to k do
    15   f[i,0]:=1;
    16  for i:=1 to k do
    17   for j:=1 to k do
    18    f[i,j]:=(f[i-1,j]+f[i-1,j-1])mod 10007;//建立杨辉三角形,注意取模
    19  if k=0 then writeln(1)
    20  else
    21   writeln((f[k,n]*(fac(a,n)mod 10007)*(fac(b,m)mod 10007))mod 10007);//最后再取模
    22 end.
    杨辉三角形
  • 相关阅读:
    明治meltykiss食后感
    纪念我11月12日,广州移动一面
    《孔XXXX》
    UDP编程 System.Net.Sockets.SocketException (0x80004005): 在其上下文中,该请求的地址无效。
    《诈欺猎人》
    MonkeyImage模块功能详解
    MonkeyDevice模块功能详解
    MonkeyRunner及MonkeyRunner模块简介
    MonkeyServer的使用及自动化
    Monkey工具脚本功能详解
  • 原文地址:https://www.cnblogs.com/PengBoLiuXu/p/4483789.html
Copyright © 2011-2022 走看看