[2020.11.25NOIP模拟赛]下棋【dp】
正题
题目链接: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】相关推荐
- [2020.11.25NOIP模拟赛]出租车【dp】
正题 题面链接:https://www.luogu.com.cn/problem/U142298?contestId=37766 题目大意 nnn个人有起点和终点,按顺序上车,但下车可以任意顺序,车最 ...
- [2020.11.27NOIP模拟赛]拼图王【dp】
正题 题面链接:https://www.luogu.com.cn/problem/U142584 题目大意 nnn个010101串,按顺序分成两个序列,然后拼接成一个序列(拼接串x,yx,yx,y的话 ...
- [2020.11.27NOIP模拟赛]中位数之中位数【二分,树状数组】
正题 题目链接:https://www.luogu.com.cn/problem/U142585?contestId=37855 题目大意 nnn个数,求所有区间中位数的中位数. 解题思路 二分一个答 ...
- [2020.11.26NOIP模拟赛]勇者的后缀【SA,RMQ,主席树,二分】
正题 题目链接:https://www.luogu.com.cn/problem/U142356?contestId=37784 题目大意 一个字符串,询问给出(x,l,r)(x,l,r)(x,l,r ...
- [2020.11.26NOIP模拟赛]询问【字符串hash】
正题 题目链接:https://www.luogu.com.cn/problem/U142342?contestId=37784 题目大意 一个字符串,定义两个字符串相似为用一些字母代替相同的字母后可 ...
- [2020.11.4NOIP模拟赛]简单的打击【NTT】
正题 题目链接:https://www.luogu.com.cn/problem/U138580 题目大意 两个长度为nnn的序列,要求重排后同位置的相加后众数的个数最多. 解题思路 定义aia_ia ...
- [2020.11.3NOIP模拟赛]选数字【容斥】
正题 题目链接:https://www.luogu.com.cn/problem/U138404?contestId=36493 题目大意 nnn个数字,每次询问一个区间有多少个三对数或为xxx. 解 ...
- [2020.10.25NOIP模拟赛]序列【Splay】
正题 题目链接:https://www.luogu.com.cn/problem/U136336?contestId=36038 题目大意 第iii次找到第iii大的数字位置xix_ixi并且翻转[ ...
- 9.11 myl模拟赛
9.11 myl 模拟赛 100 + 100 + 0 第一题耗费了太多的时间,导致最后一题没有时间想,直接去写了暴力,而且出题人没有给暴力分.... Problem 1. superman [题目描述 ...
最新文章
- 【CV】吴恩达机器学习课程笔记第16章
- outlook 2010 记忆式键入不工作的解决办法
- linux安装mysql 5.6_linux 安装mysql5.6
- oracle中的nls在哪,Oracle的NLS设置
- HTML期末作业-家乡网站
- 好产品要满足人性七宗罪
- [CentOS7] parted用于磁盘分区(同时支持GPT和MBR分区表)
- IE8 新增的Javascript,css功能
- jQuery.param() 函数详解
- (10)Spring框架----AOP面向切面编程的实现原理
- 如何根据图片找到图中的地点
- 扫清盲点,如何正确的从HttpClient 3.x系统升级到HttpClient 4.x
- Unity不规则按钮
- Flink reduce详解
- C措辞教程第四章: 数组(8)
- mui 悬浮窗口实现
- 怎样配置java的环境变量_java配置环境变量步骤
- Android 下载 自动安装 解析错误,studio下载APK到手机提示解析错误解决方法
- 航空货代系统之日常航班管理
- [分布式]:分布式系统的CAP理论
热门文章
- python docx 字体大小_聊聊python办公自动化之Word(上)
- 二叉搜索树python,代表python中的二叉搜索树
- JAVA设置新视口,java – 在更大的图像上移动视口; JLablel JScrollPane
- future.cancel不能关闭线程_多线程与高并发笔记
- 数据科学与python语言实验——NumPy数值计算基础
- 算法设计与分析——回溯法——装载问题
- leetcode904. 水果成篮(滑动窗口)
- DEV-C上的报错 Process exited after 4.03 seconds with return value 3221225725
- C++中 Map的了解与基本用法(代码演示+自我总结+map中一对多的用法)
- C++ 学习之旅(14)——构造函数constructors和析构函数destructors