您当前的位置: 首页 >  ar

*DDL_GzmBlog

暂无认证

  • 0浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[luogu] CF118D Caesar‘s Legions dp求解方案数

*DDL_GzmBlog 发布时间:2021-12-09 16:10:37 ,浏览量:0

前言

这好难 传送门 :

思路

我们定义思维状态表示 : 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]

CODE
const 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            
关注
打赏
1657615554
查看更多评论
0.0730s