传送门
一道水题debug一上午 我一定要发上来纪念一下
//话说最近在做历年NOIP,T1和T2有一道必WA。。。。弱成这样我大概没救了QAQ
其实就是
然后把前缀和预处理出来,就可以 出答案啦/(ㄒoㄒ)/~~
而且我今天发现加了inline更慢了诶= =
using namespace std;
const int N=2001;
int t,k,n,m,c[N][N],a[N][N];
void read(int &x){
x=0;char ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar());
for(;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+ch-'0';
}
int Min(int a,int b){
return a<b?a:b;
}
int main(){
read(t);read(k);
c[0][0]=1;
for(int i=1;i<N;i++)
for(int j=1;j<N;j++){
if (j<=i) c[i][j]=(c[i-1][j-1]+c[i-1][j])%k;
if (j>i) a[i][j]=a[i][j-1];else a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+(!c[i][j]);
}
for(int i=1;i<=t;i++){
read(n);read(m);
printf("%d\n",a[n+1][Min(n,m)+1]);
}
return 0;
}