Codeforces Round #104 (Div. 2) E - Lucky Subsequence

这个题其实就是个dp(类似背包),但是一些细节还是让我做了一晚上。

这个题学习了组合数取模(逆元法)

 

补充知识:逆元的求法

(a/b) mod p=a*(b逆) mod p

b*x=1(mod p) x就是b的逆元

而b逆可以利用扩展欧几里德或欧拉函数求得:

1).扩展欧几里德:b*x+p*y=1 有解,x就是所求

2).欧拉函数:b^(p-1)=1(mod p),故b*b^(p-2)=1(mod p),所以x=b^(p-2)

这里C(n,k)如果要分开求的话。最好这样做(这样只调用一次excuild函数)
我就是在这里一直TLE,T死我啦(囧)
搓代码留纪念
由于excuild函数调用太多T了。
 
下面代码是快速幂求逆元的方法

 

 
 

posted on 2012-01-25 00:37  c语言源码  阅读(265)  评论(0编辑  收藏  举报

导航