题目链接
https://ac.nowcoder.com/acm/contest/275/A
思路来源
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=37485613
心得
get到了逆元的性质,
比如说每次乘以的时候,直接乘以mod意义下的
而假设最后求的分数是,即时,
此时要求,只需%mod即可,
也就是说,逆元世界里,没有分母,剩下的可以统一过来。
顺便在这里写下,阶乘逆元的性质
由n!=(n-1)!*n,
则由inv(n!)=inv((n-1)!)*inv(n),
两侧同乘1/inv(n),即同乘inv(inv(n))=n知,
inv(n!)*n=inv((n-1)!)
因此,可利用inv(n)求inv(n-1),先求得inv(maxn)后,
可预处理出阶乘逆元表,O(n)
当然用inv[i]=(mod-mod/i)*inv[mod%i]%mod(记忆化O(logn)搜索)也可,注意i
求出每个的逆元之后阶乘一下。
代码
#include
#include
#include
#include
#include
#include
#include