【UVa】11270 Tiling Dominoes
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2245
题意:求用1×2的棋子摆满n×m的棋盘的方案数。(n×m<=100)
#include <bits/stdc++.h>
using namespace std; long long d[2][1<<10], n, m;
int main() {
while(~scanf("%d%d", &n, &m)) {
if(m>n) swap(m, n);
int now=0, last=1, all=(1<<m)-1, up=1<<(m-1);
for(int i=0; i<=all; ++i) d[last][i]=0;
d[last][all]=1;
for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j) {
for(int s=0; s<=all; ++s) d[now][s]=0;
for(int s=0; s<=all; ++s) if(d[last][s]) {
int goal=(s<<1)&all;
if(i!=1 && !(s&up)) d[now][goal|1]+=d[last][s];
if(j!=1 && !(s&1) && (s&up)) d[now][goal|3]+=d[last][s];
if(s&up) d[now][goal]+=d[last][s];
}
swap(now, last);
}
printf("%lld\n", d[last][all]);
}
return 0;
}
经典题....轮廓线dp...每个格子设状态,然后记录上面轮廓线的状态,然后考虑三种转移:
1、这个格子上边没有覆盖,当前格子也不覆盖
2、这个格子上边没有覆盖,用一块棋子覆盖上边和当前点
3、这个格子左边没有覆盖且上边有覆盖,用一块棋子覆盖左边和当前点
然后注意开long long...
【UVa】11270 Tiling Dominoes的更多相关文章
- uva 11270 - Tiling Dominoes(插头dp)
题目链接:uva 11270 - Tiling Dominoes 题目大意:用1∗2木块将给出的n∗m大小的矩阵填满的方法总数. 解题思路:插头dp的裸题,dp[i][s]表示第i块位置.而且该位置相 ...
- CJOJ 1070 【Uva】嵌套矩形(动态规划 图论)
CJOJ 1070 [Uva]嵌套矩形(动态规划 图论) Description 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽.矩形 X(a, b) 可以嵌套在矩形 Y(c, ...
- CJOJ 1071 【Uva】硬币问题(动态规划)
CJOJ 1071 [Uva]硬币问题(动态规划) Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为 ...
- 题解 【Uva】硬币问题
[Uva]硬币问题 Description 有n种硬币,面值分别为v1, v2, ..., vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值 ...
- 【LeetCode】838. Push Dominoes 解题报告(Python)
[LeetCode]838. Push Dominoes 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http:// ...
- 【UVA】【10828】随机程序
数学期望/高斯消元/马尔可夫过程 刘汝佳老师白书上的例题- -b 本体不满足拓扑关系,但马尔可夫过程是可以高斯消元解的…… 用「高斯·约当消元」更方便! //UVA 10828 #include< ...
- 【UVA】【11762】Race to 1(得到1)
数学期望/马尔可夫过程 DP/记忆化搜索 刘汝佳老师白书上的例题…… //UVA 11762 #include<vector> #include<cstdio> #includ ...
- 【UVA】【11427】玩纸牌
数学期望 也是刘汝佳老师白书上的例题……感觉思路很神奇啊 //UVA 11427 #include<cmath> #include<cstdio> #include<cs ...
- 【UVA】【11021】麻球繁衍
数序期望 刘汝佳老师的白书上的例题……参见白书 //UVA 11021 #include<cmath> #include<cstdio> #define rep(i,n) fo ...
随机推荐
- 关于Linux下进程间使用共享内存和信号量通信的时的编译问题
今天在编译一个使用信号量实现进程同步时,出现了库函数不存在的问题.如下图 编译结果实际上是说,没include相应的头文件,或是头文件不存在(即系统不支持该库函数) 但我man shm_open是可以 ...
- linux 学习一:安装jdk和tomcat
使用secureCRT 一.首先安装centos的rzsz. 1.yum自动安装:(yum安装rzsz) yum install lrzsz 2.手动安装方法如下:(包有问题,还是采用第一种方式) 2 ...
- Python操作Mysql实例代码教程在线版(查询手册)
本文介绍了Python操作MYSQL.执行SQL语句.获取结果集.遍历结果集.取得某个字段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐 实 ...
- 不使用arc功能时的编译参数 –fno-objc-arc
用一些老代码时,里面总有release调用,你需要用上这个标记,不使用arc功能编译代码.我总记不住具体写法,做个记录.
- NanoApe Loves Sequence-待解决
NanoApe Loves Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java ...
- Android Handler leak 分析及解决办法
In Android, Handler classes should be static or leaks might occur, Messages enqueued on the applicat ...
- p364习题1
- 理解C#中的闭包
闭包的概念 内层的函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止.但该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值. 闭包的优点 使用闭包,我们可以轻松的访问外层函数定 ...
- 《Effective Java》笔记 使类和成员的可访问性最小化
类和接口 第13条 使类和成员的可访问性最小化 1.设计良好的模块会隐藏所有的实现细节,把它的API与实现清晰的隔离开来,模块之间只通过它们的API进行通信,一个模块不需要知道其他模块的内部工作情况: ...
- SELECT的解析顺序及慢查询优化
标准的 SQL 的解析顺序为:(1)FROM 子句, 组装来自不同数据源的数据(2)WHERE 子句, 基于指定的条件对记录进行筛选(3)GROUP BY 子句, 将数据划分为多个分组(4)使用聚合函 ...