考试T2,随便推一推就好了~

code:

#include <bits/stdc++.h>
#define N 1015
#define mod 998244353
#define ll long long
#define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w",stdout)
using namespace std;
ll f[N][N<<1][2][2];
int main()
{
// setIO("army");
int i,j,n=2,m,k;
scanf("%d%d",&m,&k);
f[1][1][0][0]=1ll;
f[1][1][1][1]=1ll;
f[1][2][1][0]=1ll;
f[1][2][0][1]=1ll;
for(i=1;i<m;++i)
{
for(j=1;j<=k;++j)
{
(f[i+1][j][0][0]+=(f[i][j][0][0]+f[i][j][0][1]+f[i][j][1][0])%mod)%=mod;
(f[i+1][j][1][1]+=(f[i][j][0][1]+f[i][j][1][0]+f[i][j][1][1])%mod)%=mod;
(f[i+1][j][0][1]+=f[i][j][0][1])%=mod;
(f[i+1][j][1][0]+=f[i][j][1][0])%=mod;
(f[i+1][j+1][0][0]+=f[i][j][1][1])%=mod;
(f[i+1][j+1][1][1]+=f[i][j][0][0])%=mod;
(f[i+1][j+1][0][1]+=(f[i][j][0][0]+f[i][j][1][1])%mod)%=mod;
(f[i+1][j+1][1][0]+=(f[i][j][0][0]+f[i][j][1][1])%mod)%=mod;
(f[i+1][j+2][0][1]+=f[i][j][1][0])%=mod;
(f[i+1][j+2][1][0]+=f[i][j][0][1])%=mod;
}
}
printf("%lld\n",(f[m][k][0][0]+f[m][k][1][1]+f[m][k][0][1]+f[m][k][1][0])%mod);
return 0;
}

  

CF1051D Bicolorings 递推的更多相关文章

  1. 【BZOJ-2476】战场的数目 矩阵乘法 + 递推

    2476: 战场的数目 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 38[Submit][Status][Discuss] D ...

  2. 从一道NOI练习题说递推和递归

    一.递推: 所谓递推,简单理解就是推导数列的通项公式.先举一个简单的例子(另一个NOI练习题,但不是这次要解的问题): 楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可 ...

  3. Flags-Ural1225简单递推

    Time limit: 1.0 second Memory limit: 64 MB On the Day of the Flag of Russia a shop-owner decided to ...

  4. 利用Cayley-Hamilton theorem 优化矩阵线性递推

    平时有关线性递推的题,很多都可以利用矩阵乘法来解决. 时间复杂度一般是O(K3logn)因此对矩阵的规模限制比较大. 下面介绍一种利用利用Cayley-Hamilton theorem加速矩阵乘法的方 ...

  5. 【66测试20161115】【树】【DP_LIS】【SPFA】【同余最短路】【递推】【矩阵快速幂】

    还有3天,今天考试又崩了.状态还没有调整过来... 第一题:小L的二叉树 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣.所以,小L当时卡在了二叉树. ...

  6. 简单递推 HDU-2108

    要成为一个ACMer,就是要不断学习,不断刷题...最近写了一些递推,发现递推规律还是挺明显的,最简单的斐波那契函数(爬楼梯问题),这个大家应该都会,看一点稍微进阶了一点的,不是简单的v[i] = v ...

  7. [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索

    1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...

  8. 矩阵乘法&矩阵快速幂&矩阵快速幂解决线性递推式

    矩阵乘法,顾名思义矩阵与矩阵相乘, 两矩阵可相乘的前提:第一个矩阵的行与第二个矩阵的列相等 相乘原则: a b     *     A B   =   a*A+b*C  a*c+b*D c d     ...

  9. openjudge1768 最大子矩阵[二维前缀和or递推|DP]

    总时间限制:  1000ms 内存限制:  65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵. 比如,如下4 * 4的 ...

随机推荐

  1. C++利用权重方法将二进制正数转换为十进制数

    #include <iostream> #include <Windows.h> #include <string> using namespace std; in ...

  2. TZOJ3114: {A}∩{B}

    #include<stdio.h> int main() { ],b[],m,i,j,c; scanf("%d",&t); while(t--) { c=; s ...

  3. (转)FFMPEG类库打开流媒体的方法(需要传参数的时候)

    本文链接:https://blog.csdn.net/leixiaohua1020/article/details/14215393 使用ffmpeg类库进行开发的时候,打开流媒体(或本地文件)的函数 ...

  4. Angular 学习笔记 (Material table sticky 原理)

    更新 : 2019-12-03 今天踩坑了, sticky 了解不够深 refer http://www.ruanyifeng.com/blog/2019/11/css-position.html 阮 ...

  5. 委托、Action泛型委托、Func泛型委托、Predicate泛型委托的用法

    一.举一委托场景:天气很热,二狗子想去买瓶冰镇可乐,但是二狗子很懒,于是他想找个人代他去,于是要有个代理人. 创建代理人之前先定义委托:public delegate string BuyColaDe ...

  6. Http 和 Socket 之间的恩爱情仇

    前言 一些刚入门的小伙伴可能会用 Socket,也会用 OkHttp 或者 HttpUrlConnection 等一些 HTTP 客户端工具,这两个东西看着有点像可是又不太一样,到底是哪里不一样呢? ...

  7. 【转载】 C#使用Select方法快速获取List集合集合中某个属性的所有值集合

    在C#的List集合操作或者数组操作中,有时候我们需要获取到List集合元素中所有的对象的某个属性,然后存放到一个数组集合中,此时就可以使用到List集合以及数组的扩展方法Select方法快速实现获取 ...

  8. Ubuntu安装opencv3.4.4教程

    1 去官网下载opencv 在本教程中选用的是opencv3.4.4,下载链接 http://opencv.org/releases.html ,选择sources. 2 解压 unzip openc ...

  9. CSS和LESS

    1.CSS 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS ...

  10. PHP原生EXCEL导出带样式无插件无乱码实现

    PHP原生EXCEL导出 经测试 带样式 无插件 无乱码,不需要引入任何插件,不需要修改任何编码 (使用时只需要修改引入php数据库配置文件.修改thead tbody中的数据即可.根据自己的需要去接 ...