这好难 传送门 :
思路我们定义思维状态表示 : f [ i ] [ j ] [ k 1 ] [ k 2 ] f[i][j][k1][k2] f[i][j][k1][k2] 表示前 i i i个A军队 和前 j j j个 B B B军队中,有 k 1 k1 k1个连续的A和 K 2 K2 K2个
连续的B的方案数
显然,对于k1,k2 必然是有一个为 0
因此状态转移如下 :
f [ i ] [ j ] [ 1 ] [ 0 ] + = f [ i ] [ j − 1 ] [ 0 ] [ k ] f[i][j][1][0] +=f[i][j-1][0][k] f[i][j][1][0]+=f[i][j−1][0][k] f [ i ] [ j ] [ 0 ] [ 1 ] + = f [ i − 1 ] [ j ] [ k ] [ 0 ] f[i][j][0][1]+=f[i-1][j][k][0] f[i][j][0][1]+=f[i−1][j][k][0] f [ i ] [ j ] [ 0 ] [ k ] + = f [ i − 1 ] [ j ] [ 0 ] [ k − 1 ] f[i][j][0][k]+=f[i-1][j][0][k-1] f[i][j][0][k]+=f[i−1][j][0][k−1] f [ i ] [ j ] [ k ] [ 0 ] + = f [ i ] [ j − 1 ] [ k − 1 ] [ 0 ] f[i][j][k][0]+=f[i][j-1][k-1][0] f[i][j][k][0]+=f[i][j−1][k−1][0]
CODEconst int N = 110,K = 15;
const int MOD = 1e8;
int f[N][N][K][K];
int n,m,k1,k2;
int mx(int x)
{
if(x>n>>m>>k1>>k2;
f[0][0][0][0] = 1;
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?