题目链接:http://codeforces.com/problemset/problem/1051/D

看了大佬的题解后觉着是简单的dp,咋自己做就做不来呢。

大佬的题解:https://www.cnblogs.com/tobyw/p/9685639.html

刚看的时候有点感觉 状态肯定是(i,k) 但是这个状态不具备无后效性 会受到i-1两个格子啥颜色的影响 然后就没往下想了qwq

大佬用了二进制来表示这两格的状态

现在的状态就是(i, k, color) color有4种可能 0,0     1,1     0,1     1,0

状态转移方程就很自然了

dp[i][k][0] = dp[i-1][k][0] + dp[i-1][k][1] +dp[i-1][k][2] + dp[i-1][k-1][3]
dp[i][k][1] = dp[i-1][k-1][0] +dp[i-1][k][1] + dp[i-1][k-2][2] +dp[i-1][k-1][3]
dp[i][k][2] = dp[i-1][k-1][0] + dp[i-1][k-2][1] + dp[i-1][k][2] +dp[i-1][k-1][3]
dp[i][k][3] = (dp[i-1][k-1][0] + dp[i-1][k][1] +dp[i-1][k][2] + dp[i-1][k][3]

代码如下

#include <cstdio>
#include <algorithm>
#define ll long long
#define MOD 998244353
using namespace std; const int maxn = ;
ll dp[maxn][maxn<<][]; int main(int argc, char const *argv[])
{
int n, kl;
scanf("%d%d", &n, &kl);
dp[][][] = ;
dp[][][] = dp[][][] = ;
dp[][][] = ;
for (int i = ; i <= n; i++) {
for (int k = ; k <= (i << ); k++) {
dp[i][k][] = (dp[i-][k][] +
dp[i-][k][] +
dp[i-][k][] +
dp[i-][k-][]) % MOD;
dp[i][k][] = (dp[i-][k-][] +
dp[i-][k][] +
dp[i-][k-][] +
dp[i-][k-][]) % MOD;
dp[i][k][] = (dp[i-][k-][] +
dp[i-][k-][] +
dp[i-][k][] +
dp[i-][k-][]) % MOD;
dp[i][k][] = (dp[i-][k-][] +
dp[i-][k][] +
dp[i-][k][] +
dp[i-][k][]) % MOD;
}
}
printf("%lld\n", (dp[n][kl][] + dp[n][kl][] + dp[n][kl][] + dp[n][kl][]) % MOD);
return ;
}

最新文章

  1. mybatis返回数据类型为map,值为null的key没返回
  2. 在线文档预览方案-office web apps续篇
  3. Symbol not found for architecture arm64 错误
  4. AngularJs的UI组件ui-Bootstrap分享(十三)——Progressbar
  5. 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件
  6. 【转】GATK使用方法详解(包含bwa使用)
  7. MFC为应用程序添加托盘(右键托盘,弹出菜单)
  8. 团队作业7——第二次项目冲刺(Beta版本12.05-12.07)
  9. Oracle AWR报告详细分析--比较详细
  10. nginx 499状态码
  11. bzoj-1179(缩点+最短路)
  12. 数据传输流程和socket简单操作
  13. Wechart 饼图
  14. 『MXNet』第十二弹_再谈新建计算节点
  15. Hibernate乐观锁无法Catch到org.hibernate.StaleObjectStateException
  16. java-RAC Oracle 连接字符串
  17. Dos.ORM - 目录、介绍
  18. iframe之onload事件小记
  19. 关于createTextRange和createRange的一些用法【转】
  20. java程序设计基础篇 复习笔记 第五单元

热门文章

  1. burnside+polya 整理
  2. [C# ASP.NET]如何让IIS Express支持外部(局域网)连接
  3. flask登录插件 flask-login
  4. 杭电 1061 Rightmost Digit计算N^N次方的最后一位
  5. python三数之和
  6. socket流程
  7. Shell脚本命令图片
  8. Linux&amp;Windows中VNC协议及使用方法
  9. linuxmint 搜狗输入法安装
  10. Sigma Function