超能粒子炮·改"/>
: 超能粒子炮·改
.php?cid=1463&pid=42
#include<cstdio>
#include<iostream>
#define p 2333
#define ll long long
using namespace std;
ll c[p+10][p+10],s[p+10][p+10],i,j,t,n,k;
ll lucas(ll n,ll k)
{return k!=0ll?c[n%p][k%p]*lucas(n/p,k/p)%p:1ll;
}
ll ans(ll n,ll k)
{return k<0ll?0ll:(s[n%p][p-1]*ans(n/p,k/p-1)%p+lucas(n/p,k/p)*s[n%p][k%p]%p)%p;
}
int main()
{c[0][0]=1ll;for(i=1; i<=p; i++){c[i][0]=c[i][i]=1ll;for(j=1; j<i; j++)c[i][j]=(c[i-1][j-1]+c[i-1][j])%p;}for(i=0; i<=p; i++){s[i][0]=1ll;for(j=1; j<=p; j++)s[i][j]=(s[i][j-1]+c[i][j])%p;}scanf("%lld",&t);while(t--){scanf("%lld%lld",&n,&k);printf("%lld\n",ans(n,k));}
}
更多推荐
: 超能粒子炮·改
发布评论