<N
by Read_int @ 2022-10-20 20:36:31
```inline void build()
{
c[0][0]=1;
c[1][0]=c[1][1]=1;
for(int i=2;i<=2000;i++)
{
c[i][0]=1;
for(int j=1;j<=i;j++)
{
c[i][j]=(c[i-1][j-1]+c[i-1][j])%k;
ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1];//前缀和。
if(!c[i][j])ans[i][j]++;//如果满足结论,计数加一。(有没有感觉很像我的玄学优化)
}
ans[i][i+1]=ans[i][i];//继承。
}
}
inline void solve()
{
t=read(),k=read();
build();
while(t--)
{
n=read(),m=read();
if(m>n)printf("%lld\n",ans[n][n]);//如果m>n,ans只会达到n,只需输出ans[n,n]就可以了。
else printf("%lld\n",ans[n][m]);
}
}
from 题解
by 大佬https://www.luogu.com.cn/user/60089
by Pikacu @ 2022-10-20 20:39:51
```for(int i = 1; i <= N; i++){```中的
```i<=N```会越界访问
by iCantPlayLN @ 2022-10-20 20:41:40
既然相遇就是缘分,各位大佬能加个好友吗?
by Pikacu @ 2022-10-20 20:43:21
谢谢各位大佬,已关注
by _x_y_ @ 2022-10-26 17:53:15