HELP!!!!
查看原帖
HELP!!!!
270977
a1943517355楼主2020/8/12 13:52
#include <cstdio>
#include <iostream>
using namespace std;
typedef long long ll;
const int N=3e6+10;
int fict[N],infict[N];
ll qmi(int a,int k,int p)
{
	ll res=1;
	while(k)
	{
		if(k&1) res=(ll)res*a%p;
		a=(ll)a*a%p;
		k>>=1;
	}
	return res;
}

int main()
{
	fict[0]=infict[0]=1;
	int n,p;
	cin>>n>>p;
	for(int i=1;i<=n+1;i++)
	{
		fict[i]=(ll)fict[i-1]*i%p;
		infict[i]=(ll)infict[i-1]*qmi(i,p-2,p)%p;
	}
	for(int i=1;i<=n;i++)
	{
		printf("%d\n",(ll)infict[i]*fict[i-1]%p);
	}
	return 0;
}

为什么后两个点会TLE啊!

2020/8/12 13:52
加载中...