摘要:
题意:一个N*M的网格,只能在网格的边上向上或向右走,求从左下角走到右上角的方案数.分析:一共要走N+M步,其中M步向右,N步向上.因此方案数即C(N+M,N).code:var n,m,max,o,ans:int64;begin while not eof do begin readln(n,m); if n+m=0 then halt; max:=n; if m>max then max:=m; ans:=1; o:=max+1; while o<=n+m do begin ans:=int64(ans)*int64(o) div int64(o-max); o:=o+1; e
阅读全文
posted @ 2011-08-10 16:44
exponent
阅读(208)
推荐(0)
编辑
摘要:
题意:求A^B的约数和mod 9901.(0 <= A,B <= 50000000)分析:记f(n)为n的约数和.求f(a^b) mod c.f(n)=∏(pi^(qi+1)-1)/(pi-1)pi为质因子,qi为质因子个数.(pi^(qi+1)-1)/(pi-1)=1+pi+pi^2+......+pi^qi转化为等比数列的和.可以用二分.例如:1+p+p^2+p^3+p^4=p^2+(1+p^3)(1+p)1+p+p^2+p^3+p^4+p^5=(1+p^3)(1+p+p^2)递归进行.code:const mo=9901;var p,q:array[0..20] of lon
阅读全文
posted @ 2011-08-10 16:41
exponent
阅读(671)
推荐(0)
编辑