哥们你这时间复杂度是o(t*n*m) 肯定会t啊,我刚刚交了一发o(t*n)的过了
```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int c[2002][2002];
int dp[2002][2002];
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int t,k;
cin>>t>>k;
c[0][0]=1;
for(int i=1;i<=2000;i++)
{
c[i][0]=1;
for(int j=1;j<=i;j++)
c[i][j]=(c[i-1][j]+c[i-1][j-1])%k;
}
for(int i=0;i<=2000;i++)
{
dp[i][0]=(c[i][0]==0);
for(int j=1;j<=i;j++)
dp[i][j]=dp[i][j-1]+(c[i][j]==0);
}
while(t--)
{
int n,m;
cin>>n>>m;
int ans=0;
for(int i=0;i<=n;i++)
{
ans+=dp[i][min(i,m)];
}
cout<<ans<<endl;
}
}
```
这里的dp【i】【j】指的是 n为i,m为0-j时满足的个数
by 2104300103xf @ 2023-04-21 16:11:46
谢大佬
by ouiostream @ 2023-05-31 12:11:32
@[ouiostream](/user/557069) 你这代码怎么写得和深入浅出上的一摸一样
by ZYK_luogu @ 2023-06-26 10:30:06
@[ZYK_luogu](/user/742157)
我都没有深入浅出的书
by ouiostream @ 2023-06-26 12:14:31
其中有一些部分是同学教的
可能他抄的吧
by ouiostream @ 2023-06-26 12:15:45
开O2可以多5分(亲测
by Young_happY @ 2023-08-28 11:15:33