cf1051d 简单的状态压缩dp
/*
给定一个二行n列的格子,在里面填黑白色,要求通过黑白色将格子分为k块
请问有多少种填色方式
dp[j][k][0,1,2,3]
填到第j列,有k块,第j列的颜色,
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 998244353
//0全白,1黑白,2白黑,3黑黑
ll dp[][*][],n,k;
int main(){
cin>>n>>k;
memset(dp,,sizeof dp);
dp[][][]=dp[][][]=;
dp[][][]=dp[][][]=;
for(int i=;i<=n;i++)
for(int j=;j<=k;j++){
dp[i][j][]=(dp[i-][j][]+dp[i-][j-][]+dp[i-][j][]+dp[i-][j][])%mod;
dp[i][j][]=(dp[i-][j-][]+dp[i-][j][]+dp[i-][j][]+dp[i-][j][])%mod;
dp[i][j][]=(dp[i-][j-][]+dp[i-][j-][]+dp[i-][j][]+dp[i-][j-][])%mod;
dp[i][j][]=(dp[i-][j-][]+dp[i-][j-][]+dp[i-][j-][]+dp[i-][j][])%mod;
}
printf("%lld\n",(dp[n][k][]+dp[n][k][]+dp[n][k][]+dp[n][k][])%mod);
}
cf1051d 简单的状态压缩dp的更多相关文章
- POJ2686 Traveling by Stagecoach 状态压缩DP
POJ2686 比较简单的 状态压缩DP 注意DP方程转移时,新的状态必然数值上小于当前状态,故最外层循环为状态从大到小即可. #include <cstdio> #include < ...
- [知识点]状态压缩DP
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...
- [动态规划]状态压缩DP小结
1.小技巧 枚举集合S的子集:for(int i = S; i > 0; i=(i-1)&S) 枚举包含S的集合:for(int i = S; i < (1<<n); ...
- POJ 3311 Hie with the Pie(Floyd+状态压缩DP)
题是看了这位的博客之后理解的,只不过我是又加了点简单的注释. 链接:http://blog.csdn.net/chinaczy/article/details/5890768 我还加了一些注释代码,对 ...
- hdu 4057(ac自动机+状态压缩dp)
题意:容易理解... 分析:题目中给的模式串的个数最多为10个,于是想到用状态压缩dp来做,它的状态范围为1-2^9,所以最大为2^10-1,那我们可以用:dp[i][j][k]表示长度为i,在tri ...
- HDU1565+状态压缩dp
简单的压缩状态 dp /* 状态压缩dp 同hdu2167 利用滚动数组!! */ #include<stdio.h> #include<string.h> #include& ...
- POJ1185 - 炮兵阵地(状态压缩DP)
题目大意 中文的..直接搬过来... 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平 ...
- POJ3254 - Corn Fields(状态压缩DP)
题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米 ...
- Victor and World(spfa+状态压缩dp)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5418 Victor and World Time Limit: 4000/2000 MS (Java/ ...
随机推荐
- oracle存储过程---创建存储过程语句
一.创建存储过程语句 语法: CREATE OR REPLACE PROCEDURE testname( argument1 TYPE1, .... ) AS BEGIN ...... END ...
- Java对象的浅拷贝和深拷贝&&String类型的赋值
Java中的数据类型分为基本数据类型和引用数据类型.对于这两种数据类型,在进行赋值操作.方法传参或返回值时,会有值传递和引用(地址)传递的差别. 浅拷贝(Shallow Copy): ①对于数据类型是 ...
- AtomicLong和LongAdder的区别
AtomicLong的原理是依靠底层的cas来保障原子性的更新数据,在要添加或者减少的时候,会使用死循环不断地cas到特定的值,从而达到更新数据的目的. LongAdder在AtomicLong的基础 ...
- ASP.NET MVC - XML节点查找
Jquery操作Xml Jquery1.2开始不再支持XPath表达式. <?xml version="1.0" encoding="utf-8" ?&g ...
- oracle启用异步IO(db file async I/O submit)
市局双随机awr报告中有大量db file async I/O submit等待事件 参考两篇文章: [案例]Oracle等待事件db file async I/O submit产生原因和解决办法 d ...
- ipconfig命令查ip的时候给别人看有危险吗
知识源:Unit 4: Networking 1 4.1 Networking 1 The Routing of a Packet 网址:https://www.baidu.com/link?url ...
- Iterables vs. Iterators vs. Generators
Reprinted from: Iterables vs. Iterators vs. Generators Occasionally I've run into situations of conf ...
- Java的static类
首先Java的static类只能是静态内部类.如果在外部类声明为static,程序会编译通不过. 其次,主要了解下static内部类与普通内部类的区别是什么,以及static内部类的作用是什么,详见下 ...
- Python备份MySQL数据库【转】
#!/usr/bin/env python # coding: utf- import os import time ''' defined variable ''' databases=['hch' ...
- flask(1)
在Python中常用的web框架有flask.Django.tornado # -*- encoding: utf-8 -*- from flask import Flask #建立Flask对象 a ...