@[黄仁勋](/space/show?uid=23771) ~~您的头文件让我震惊~~
by skiy_gyx @ 2018-10-23 21:02:46
@[黄仁勋](/space/show?uid=23771) 巧了,我也刚做完
仅供参考
```cpp
#include <bits/stdc++.h>
#define newline printf ("\n")
#define space printf (" ")
#define cinfalse ios::sync_with_stdio(false)
#define fread(a) freopen (a".in", "r", stdin), freopen(a".out", "w", stdout)
#define rint register int
#define For(i, a, b) for (rint i = a; i <= b; i ++)
#define Low(i, a, b) for (rint i = a; i >= b; i --)
#define FFr(i, a, b, c) for (rint i = a; i <= b; i += c)
#define FLw(i, a, b, c) for (rint i = a; i >= b; i -= c)
#define min(a, b) (a)>(b)?(b):(a)
#define max(a, b) (a)>(b)?(a):(b)
#define MAXN 2005
using namespace std;
int t, k;
int C[MAXN][MAXN], s[MAXN][MAXN];
void preper ()
{
C[1][1] = 1;
For (i, 0, MAXN-2) C[i][0] = 1;
For (i, 2, MAXN-2) For (j, 1, i) C[i][j] = (C[i-1][j]+C[i-1][j-1]) % k;
For (i, 2, MAXN-2)
{
For (j, 1, i)
{
s[i][j] = s[i-1][j]+s[i][j-1]-s[i-1][j-1];
if (!C[i][j]) s[i][j] += 1;
}
s[i][i+1] = s[i][i];
}
}
int main ()
{
scanf ("%d%d", &t, &k);
preper();
while (t--) {rint a, b; scanf ("%d%d", &a, &b), printf ("%d\n", s[a][min(a, b)]);}
return 0;
}
```
by tocek_shiki @ 2018-10-23 21:06:18