写着玩玩……

反正超级sb题。

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll c[][],h[],f[][];
int n,m,k;
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
int T=read();k=read();c[][]=;
for(int i=;i<=;i++){
c[i][]=;
for(int j=;j<=i;j++){
c[i][j]=(c[i-][j]+c[i-][j-])%k;
if(!c[i][j])h[i]++;
f[i][j]=f[i-][j]+h[i];
if(i==j)f[i][j]=f[i-][j-]+h[i];
}
}
while(T--){
n=read();m=read();
if(m>n)m=n;
printf("%lld\n",f[n][m]);
}
}
05-28 11:00