正题

题目链接:https://www.luogu.com.cn/problem/U142297?contestId=37766


题目大意

nnn个白棋mmm个黑棋排成一排,要求没有任何一段黑白棋的个数差大于ttt。求方案数。


解题思路

设fi,j,k,lf_{i,j,k,l}fi,j,k,l​表示已经摆了iii个白棋jjj个黑棋,所有后缀中S白−S黑S_白-S_黑S白​−S黑​最大是kkk,S黑−S白S_黑-S_白S黑​−S白​最大是lll时的方案数。

然后转移是保证k,lk,lk,l不能大于ttt,如果k,lk,lk,l向负数转移时转到000就好了。

时间复杂度O(nmt2)O(nmt^2)O(nmt2)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int XJQ=1e9+7;
int n,m,t,f[160][160][22][22],ans;
int main()
{scanf("%d%d%d",&n,&m,&t);f[0][0][0][0]=1;for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)for(int q=0;q<=t;q++)for(int p=0;p<=t;p++){(f[i+1][j][q+1][max(p-1,0)]+=f[i][j][q][p])%=XJQ;(f[i][j+1][max(q-1,0)][p+1]+=f[i][j][q][p])%=XJQ;}for(int q=0;q<=t;q++)for(int p=0;p<=t;p++)(ans+=f[n][m][q][p])%=XJQ;printf("%d\n",ans);
}

[2020.11.25NOIP模拟赛]下棋【dp】相关推荐

  1. [2020.11.25NOIP模拟赛]出租车【dp】

    正题 题面链接:https://www.luogu.com.cn/problem/U142298?contestId=37766 题目大意 nnn个人有起点和终点,按顺序上车,但下车可以任意顺序,车最 ...

  2. [2020.11.27NOIP模拟赛]拼图王【dp】

    正题 题面链接:https://www.luogu.com.cn/problem/U142584 题目大意 nnn个010101串,按顺序分成两个序列,然后拼接成一个序列(拼接串x,yx,yx,y的话 ...

  3. [2020.11.27NOIP模拟赛]中位数之中位数【二分,树状数组】

    正题 题目链接:https://www.luogu.com.cn/problem/U142585?contestId=37855 题目大意 nnn个数,求所有区间中位数的中位数. 解题思路 二分一个答 ...

  4. [2020.11.26NOIP模拟赛]勇者的后缀【SA,RMQ,主席树,二分】

    正题 题目链接:https://www.luogu.com.cn/problem/U142356?contestId=37784 题目大意 一个字符串,询问给出(x,l,r)(x,l,r)(x,l,r ...

  5. [2020.11.26NOIP模拟赛]询问【字符串hash】

    正题 题目链接:https://www.luogu.com.cn/problem/U142342?contestId=37784 题目大意 一个字符串,定义两个字符串相似为用一些字母代替相同的字母后可 ...

  6. [2020.11.4NOIP模拟赛]简单的打击【NTT】

    正题 题目链接:https://www.luogu.com.cn/problem/U138580 题目大意 两个长度为nnn的序列,要求重排后同位置的相加后众数的个数最多. 解题思路 定义aia_ia ...

  7. [2020.11.3NOIP模拟赛]选数字【容斥】

    正题 题目链接:https://www.luogu.com.cn/problem/U138404?contestId=36493 题目大意 nnn个数字,每次询问一个区间有多少个三对数或为xxx. 解 ...

  8. [2020.10.25NOIP模拟赛]序列【Splay】

    正题 题目链接:https://www.luogu.com.cn/problem/U136336?contestId=36038 题目大意 第iii次找到第iii大的数字位置xix_ixi​并且翻转[ ...

  9. 9.11 myl模拟赛

    9.11 myl 模拟赛 100 + 100 + 0 第一题耗费了太多的时间,导致最后一题没有时间想,直接去写了暴力,而且出题人没有给暴力分.... Problem 1. superman [题目描述 ...

最新文章

  1. 【CV】吴恩达机器学习课程笔记第16章
  2. outlook 2010 记忆式键入不工作的解决办法
  3. linux安装mysql 5.6_linux 安装mysql5.6
  4. oracle中的nls在哪,Oracle的NLS设置
  5. HTML期末作业-家乡网站
  6. 好产品要满足人性七宗罪
  7. [CentOS7] parted用于磁盘分区(同时支持GPT和MBR分区表)
  8. IE8 新增的Javascript,css功能
  9. jQuery.param() 函数详解
  10. (10)Spring框架----AOP面向切面编程的实现原理
  11. 如何根据图片找到图中的地点
  12. 扫清盲点,如何正确的从HttpClient 3.x系统升级到HttpClient 4.x
  13. Unity不规则按钮
  14. Flink reduce详解
  15. C措辞教程第四章: 数组(8)
  16. mui 悬浮窗口实现
  17. 怎样配置java的环境变量_java配置环境变量步骤
  18. Android 下载 自动安装 解析错误,studio下载APK到手机提示解析错误解决方法
  19. 航空货代系统之日常航班管理
  20. [分布式]:分布式系统的CAP理论

热门文章

  1. python docx 字体大小_聊聊python办公自动化之Word(上)
  2. 二叉搜索树python,代表python中的二叉搜索树
  3. JAVA设置新视口,java – 在更大的图像上移动视口; JLablel JScrollPane
  4. future.cancel不能关闭线程_多线程与高并发笔记
  5. 数据科学与python语言实验——NumPy数值计算基础
  6. 算法设计与分析——回溯法——装载问题
  7. leetcode904. 水果成篮(滑动窗口)
  8. DEV-C上的报错 Process exited after 4.03 seconds with return value 3221225725
  9. C++中 Map的了解与基本用法(代码演示+自我总结+map中一对多的用法)
  10. C++ 学习之旅(14)——构造函数constructors和析构函数destructors