没想到这道题竟然这么水…

我们发现m,n都非常小,完全可以O(nm)O(nm)O(nm)预处理出stripe数组,即代表(i,j)(i,j)(i,j)

及其向上的一列的个数,然后进行递推即可。

#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 2003;
int C[maxn][maxn];
int ans[maxn][maxn], stripe[maxn][maxn];
int main()
{
//froepen("in.txt","r",stdin);
int T,k;
scanf("%d%d",&T,&k);
for(int i = 1;i <= 2001; ++i) C[i][i] = C[i][0] = 1;
for(int i = 1;i <= 2001; ++i)
for(int j = 1;j < i; ++j)
C[i][j] = (C[i-1][j] + C[i-1][j-1]) % k;
for(int i = 2;i <= 2001; ++i)
for(int j = 0;j <= i; ++j)
{
if(C[i][j] == 0) ans[i][j] = stripe[i][j] = 1;
stripe[i][j] += stripe[i-1][j];
ans[i][j] += stripe[i-1][j];
if(j > 0) ans[i][j] += ans[i][j-1];
}
while(T--)
{
int n,m;
scanf("%d%d",&n,&m);
m = min(m,n);
printf("%d\n",ans[n][m]);
}
return 0;
}

最新文章

  1. 高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)
  2. Puzzle 面向服务/切面(AOP/IOC)开发框架 For .Net
  3. Abp集成Swagger的最佳实践
  4. Shell 重定向
  5. 虚拟机安装的UBUNTU怎么全屏
  6. nrf51822裸机教程-UART
  7. 屏幕 Dynpro
  8. SQL把做个字段组合成一个字符串
  9. Delphi中使用Dos窗口输出调试信息
  10. builds error
  11. Jackson将json string转为Object,org.json读取json数组
  12. Servlet实践--留言板-v1
  13. qt学习笔记
  14. SSM_CRUD新手练习(7)Spring单元测试分页请求
  15. Python爬虫学习——布隆过滤器
  16. jQuery插件实例七:一棵Tree的生成史
  17. Vue知识点超快速学习
  18. 梯度下降VS随机梯度下降
  19. python中的文本操作
  20. vs2010支持html5+css3

热门文章

  1. Codeforces 898D - Alarm Clock
  2. tp5 前置方法
  3. asp.net--常用的数据库链接字符串
  4. Justinmind使用教程(1)——概述部分
  5. 邮箱smtpserver及port收集
  6. bzoj5029: 贴小广告&amp;&amp;bzoj5168: [HAOI2014]贴海报
  7. linux IPtable防火墙 禁止和开放端口(转)
  8. 1.Ventuz 介绍
  9. 移动web开发中自己遇到的三个小题及解决方法
  10. Windows Server2008上安装VS2008出错及解决办法