感谢卷神与许神的指点
Description
求C(n,m)对k取模后的值,
Input
第一行有一个整数T,表示有T组数据(T≤10)
接下来有T行,每行有三个整数n,m,k,用空格隔开。
0≤n≤10^5,0≤m≤n,1≤k≤10^9+7
Output
对于每组数据,输出答案并换行
暴力的方式只适合n<=20的情况,dp[n][m] = dp[n-1][m-1]+dp[n-1][m]也只能在n<=4000的时候可行。于是我们只能先用分解质因数的方法把上下相同的质因数抵消一部分,再用快速幂的方式把剩下来的因数相乘并进行取模操作(毕竟剩下10^5个2等,还用最简单粗暴的方式相乘还是会TLE的)。
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
long long a[100100];

最低0.47元/天 解锁文章
1439

被折叠的 条评论
为什么被折叠?



