萌新求助卡常qwq
查看原帖
萌新求助卡常qwq
340940
yizcdl2357楼主2021/6/22 20:39

RT,最后一个点2.02s,死活卡不过去……

#include<iostream>
#include<cstdio>
#define ll long long
#define M 20100403
using namespace std;
int p,q;
inline int mod(int x,int y)
{return (x%y+y)%y;}
int tyfc(int a,int b,int m)//ax=b(mod m)
{
//	printf("%d %d %d\n",a,b,m);
	if(a==b) return 1;
	int y=tyfc(/*mod(-m,a)*/-m%a,mod(b,a),a);
	return mod((b+(ll)m*(ll)y)/a,m);
}
inline int Cmod(int x,int y,int z)//C^x_y%z 
{
	ll ans=1;
	for(register int i=1;i<=y;i++)
		ans=(ans*(ll)i)%z;
	for(register int i=1;i<=x;i++)
		ans=(ans*(ll)tyfc(i,1,z))%z;
	for(register int i=1;i<=y-x;i++)
		ans=(ans*(ll)tyfc(i,1,z))%z;
//	cout<<ans<<endl;
	return (int)ans;
}
int main()
{
//	p=q=1e6;
	scanf("%d%d",&p,&q);
	printf("%d",mod(Cmod(q,p+q,M)-Cmod(q-1,p+q,M),M));
	return 0;
}

好吧,我求逆元写的比较奇怪,这里解释一下:

axb(modm)ax\equiv b\pmod{m}

axmy=bax-my=b

myb(moda)-my\equiv b\pmod{a}

(mmoda)yb(moda)(-m\mod a)y\equiv b \pmod{a}

从而递归求解。

求助各位大佬!

2021/6/22 20:39
加载中...