[SHOI2015]超能粒子炮·改WA30求助
查看原帖
[SHOI2015]超能粒子炮·改WA30求助
668906
infinite2021楼主2023/6/17 14:57

rt

只过了前六个点,其余的RE了/kk

#include <bits/stdc++.h>
#define int long long 
using namespace std;
const int N=2510,p=2333;
int t;
int n,k;
int C[N][N],f[N][N];
void init()
{
    C[0][0]=f[0][0]=1;
	for(int i=1;i<=3000;i++)
    {
        C[i][0]=C[i][i]=1;
        for(int j=0;j<=i;j++)
            C[i][j]=(C[i-1][j]+C[i-1][j-1])%p;
    }
	for(int i=0;i<=3000;i++)f[i][0]=1;
	for(int i=0;i<=3000;i++)
        for(int j=1;j<=3000;j++)
            f[i][j]=(f[i][j-1]+C[i][j])%p;
}
int lucas(int a,int b)
{
    if(a<p&&b<p)return C[a][b];
    return C[a%p][b%p]*lucas(a/p,b/p)%p;
}
int get_ans(int n,int k)
{
    if(n==0||k==0)return 1;
    if(n<p&&k<p)return f[n][k]%p;
    return (f[n%p][p-1]*f[n/p][k/p-1]%p+lucas(n/p,k/p)*f[n%p][k%p]%p+p)%p;
}
signed main()
{
    init();
    cin>>t;
    while(t--)
    {
        cin>>n>>k;
        cout<<(get_ans(n,k)+p)%p<<endl;
    }
    return 0;
}
2023/6/17 14:57
加载中...