Java蒙德里安动态图_蒙德里安的梦想【状压DP】

描述

求把N*M的棋盘分割成若干个1*2的的长方形,有多少种方案。

例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。

如下图所示:

7f120bbc4952933f4d7186402ed02e2d.png

输入格式

输入包含多组测试用例。

每组测试用例占一行,包含两个整数N和M。

当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。

输出格式

每个测试用例输出一个结果,每个结果占一行。

数据范围

1≤N,M≤111≤N,M≤11

输入样例:

1 2

1 3

1 4

2 2

2 3

2 4

2 11

4 11

0 0

输出样例:

1

0

1

2

3

5

144

51205

题源POJ 2411

#include

#include //EOF,NULL

#include //memset

#include //ceil,floor,exp,log(e),log10(10),hypot(sqrt(x^2+y^2)),cbrt(sqrt(x^2+y^2+z^2))

#include //fill,reverse,next_permutation,__gcd,

#include

#include

#include

#include

#include

using namespace std;

#define rep(i, a, n) for (int i = a; i < n; ++i)

#define sca(x) scanf("%d", &x)

#define sca2(x, y) scanf("%d%d", &x, &y)

#define sca3(x, y, z) scanf("%d%d%d", &x, &y, &z)

#define pri(x) printf("%d\n", x)

#define pb push_back

#define mp make_pair

typedef pair P;

typedef long long ll;

const ll inf = ;

const int INF = 0x3f3f3f3f;

const int mod = 1e9+;

const int maxn = ;

const int N = 1e4 + ;

int t, n, m;

int cnt, ans, ed;

ll dp[][<

int path[][];

int h, w;

void dfs(int l, int now, int pre)

{

if (l > w) {

return;

}

if (l == w) {

path[cnt][] = pre;

path[cnt++][] = now;

return;

}

dfs(l + , (now << )|, (pre << )|); // 竖放,当前行为1,上一行为0

dfs(l + , (now << )|, (pre << )); // 横放 当前行和上一行都为11

dfs(l + , (now << ), (pre << )|); //不放,上一行为1,当前行为0

}

int main()

{

while (sca2(h, w) && h && w)

{

if (h < w) {

swap(h, w);

}

cnt = ;

dfs(, , );

memset(dp, , sizeof dp);

ed = ( << w) - ;

dp[][ed] = ;

for (int i = ; i < h; i++)

{

for (int j = ; j < cnt; j++)

{

dp[i + ][path[j][]] += dp[i][path[j][]];

}

}

printf("%lld\n", dp[h][ed]);

}

return ();

}

BZOJ 1087&colon; &lbrack;SCOI2005&rsqb;互不侵犯King &lbrack;状压DP&rsqb;

1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3336  Solved: 1936[Submit][ ...

nefu1109 游戏争霸赛(状压dp)

题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...

poj3311 TSP经典状压dp&lpar;Traveling Saleman Problem&rpar;

题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...

&lbrack;NOIP2016&rsqb;愤怒的小鸟 D2 T3 状压DP

[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...

【BZOJ2073】&lbrack;POI2004&rsqb;PRZ 状压DP

[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...

bzoj3380&colon; &lbrack;Usaco2004 Open&rsqb;Cave Cows 1 洞穴里的牛之一&lpar;spfa&plus;状压DP&rpar;

数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...

HDU 1074 Doing Homework (状压dp)

题意:给你N(<=15)个作业,每个作业有最晚提交时间与需要做的时间,每次只能做一个作业,每个作业超出最晚提交时间一天扣一分 求出扣的最小分数,并输出做作业的顺序.如果有多个最小分数一样的话,则 ...

【BZOJ1688】&lbrack;Usaco2005 Open&rsqb;Disease Manangement 疾病管理 状压DP

[BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...

【BZOJ1725】&lbrack;Usaco2006 Nov&rsqb;Corn Fields牧场的安排 状压DP

[BZOJ1725][Usaco2006 Nov]Corn Fields牧场的安排 Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M&lt ...

【BZOJ1087】 &lbrack;SCOI2005&rsqb;互不侵犯King 状压DP

经典状压DP. f[i][j][k]=sum(f[i-1][j-cnt[k]][k]); cnt[i]放置情况为i时的国王数量 前I行放置情况为k时国王数量为J #include

随机推荐

front end about mobile web techs

WEB OF DEVICES http://www.w3.org/standards/webofdevices/ MOBILE WEB http://www.w3.org/standards/webd ...

linux下关于svn提交的时候强制写注释

在svn版本库的hooks文件夹下面,复制模版pre-commit.tmpl cp pre-commit.tmpl pre-commit chmod 777 pre-commit 1 2 1 2 na ...

深入&period;net(&period;net平台)

S2A技能点: 1.学会“自己”进行大量复杂数据的管理(数据类型.集合.xml.文件) 2.学会“优化”代码编写--- 复用.可扩展.可替换(封装.继承.多态) 什么是“跨平台”---- 您的应用程序 ...

ios UILocalNotification的使用

iOS下的Notification的使用 Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iO ...

zookeeper错误

ZooKeeper JMX enabled by defaultUsing config: /data4/hadoop/zookeeper-3.4.8/bin/../conf/zoo.cfgError ...

WPF&colon;xmal 静动态资源

POJ2299&colon; Ultra-QuickSort-合并排序解决逆序数问题

#include #include using namespace std; long long ans; void merge(int ...

JAVA&lowbar;build&lowbar;ant&lowbar;mapper

ant里面mapper的详细用法   ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式.其实看懂官方文档后,感觉真心没啥好写的.但是还是写一下 ...

GIAC全球互联网架构大会——互联网技术架构未来

GIAC全球互联网架构大会是高可用架构技术社区推出的面向架构师.技术负责人及高端技术从业人员的技术架构大会.中国拥有全球最大的互联网用户及移动互联网用户,如何使用合适的架构来搭建互联网系统,是每一个互 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值