POJ3254Corn Fields——状态压缩dp
题目:http://poj.org/problem?id=3254
1.枚举行;
2.把有影响的“放不放牛”加入参数中,用二进制数表示该位置放不放牛,再用十进制数表示二进制数;
3.优美的预处理list;
4.优美的位运算比较二进制。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,list[],cnt,a[],d[][],ans;
const int INF=;
bool b[];
/*计算有多少种合法者 :1431
int list[15][2];
void yu()
{
list[0][0]=1;list[0][1]=1;
list[1][1]=1;list[1][0]=1;
for(int i=2;i<=12;i++)
{
list[i][1]=list[i-2][1]+list[i-1][0];
list[i][0]=list[i-1][1]+list[i-1][0];
}
printf("(%d)",list[12][1]+list[12][0]);
}
*/
int qiu()
{
int s=,r=;
for(int i=m;i;i--)
{
if(b[i])s+=r;
r*=;
}
return s;
}
void yu(int pre)
{
for(int i=pre+;i<=m;i++)
{
b[i]=;
list[++cnt]=qiu();
yu(i);
b[i]=;
}
}
int main()
{
scanf("%d%d",&n,&m);
yu(-);
// for(int i=1;i<=cnt;i++)
// printf("(%d) ",list[i]);
memset(b,,sizeof b);
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
scanf("%d",&b[j]);
int r=;
for(int j=m;j;j--)
{
if(b[j])a[i]+=r;
r*=;
}
}
for(int i=;i<=cnt;i++)
if(!((~a[])&list[i]))d[][list[i]]++;
for(int i=;i<=n;i++)
for(int j=;j<=cnt;j++)
{
if((~a[i])&list[j])continue;
for(int k=;k<=cnt;k++)
if((list[j]&list[k])==)
{
// printf("j=%d k=%d\n",list[j],list[k]);
d[i][list[j]]=(d[i][list[j]]+d[i-][list[k]])%INF;
}
}
for(int i=;i<=cnt;i++)
ans=(ans+d[n][list[i]])%INF;
printf("%d",ans);
return ;
}
POJ3254Corn Fields——状态压缩dp的更多相关文章
- POJ3254Corn Fields(状态压缩DP入门)
题目链接 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相邻.问有多少种放牛方案(一 ...
- POJ 3254 Corn Fields(状态压缩DP)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4739 Accepted: 2506 Descr ...
- POJ3254 - Corn Fields(状态压缩DP)
题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米 ...
- POJ 3254 Corn Fields (状态压缩DP)
题意:在由方格组成的矩形里面种草,相邻方格不能都种草,有障碍的地方不能种草,问有多少种种草方案(不种也算一种方案). 分析:方格边长范围只有12,用状态压缩dp好解决. 预处理:每一行的障碍用一个状态 ...
- POJ Corn Fields 状态压缩DP基础题
题目链接:http://poj.org/problem?id=3254 题目大意(名称什么的可能不一样,不过表达的意思还是一样的): 种玉米 王小二从小学一年级到现在每次考试都是班级倒数第一名,他的爸 ...
- POJ 3254. Corn Fields 状态压缩DP (入门级)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9806 Accepted: 5185 Descr ...
- poj Corn Fields 状态压缩dp。
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5763 Accepted: 3052 Descr ...
- POJ 3254 Corn Fields状态压缩DP
下面有别人的题解报告,并且不止这一个状态压缩题的哦···· http://blog.csdn.net/accry/article/details/6607703 下面是我的代码,代码很挫,绝对有很大的 ...
- POJ 3254 Corn Fields 状态压缩DP (C++/Java)
id=3254">http://poj.org/problem? id=3254 题目大意: 一个农民有n行m列的地方,每一个格子用1代表能够种草地,而0不能够.放牛仅仅能在有草地的. ...
随机推荐
- 规格化设计-----JSF(第三次博客作业)
从20世纪60年代开始,就存在着许多不同的形式规格说明语言和软件开发方法.在形式规格说明领域一些最主要的发展过程列举如下: 1969-1972 C.A.R Hoare撰写了"计算机编程的公理 ...
- EBS管理员为供应商创建新联系人流程
管理员为供应商创建新联系人流程 /oracle/apps/pos/supplier/webui/ByrAddCntctPG oracle.apps.pos.supplier.webui.ByrAddC ...
- length,lengthb,substr,substrb,instr小用
--字符串的字符长度 select length('wm.dfw.士农工商.sda.人马ss.dfw.4.sdf.332.sf.qq.sd') from dual; --字符串的字节长度 select ...
- 32. Longest Valid Parentheses *HARD*
Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...
- spring--boot数据库连接以及class建表
Spring-Boot 数据库连接以及class建表 提前在pom.xml文件中添加:jpa,mysql资源 <dependency> <groupId>org.spring ...
- hibernate中3个重要的类 Configuration SessionFactory Session
配置类Configuration 主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时,配置文件取读底层的配置信息,基本包括数据库驱动,url.usernam ...
- 清除 eclipse svn 账号密码
进入目录 C:\Documents and Settings\administrator\Application Data\Subversion\auth 删除目录下所有文件,然后重新刷新svn地址就 ...
- DevExpress ASPxComboBox lost selected item after postback
<dx:ASPxComboBox ID="cbxSname" ClientInstanceName="cbxSname" Font-Names=" ...
- 【记录】恢复win7与ARM开发板TQ2440的串口连接
1.给板子上电. 2.接好物理上的串口连接,板子那端就是普通的RS232串口,电脑这端是USB转串口的线的USB这头,连到电脑上,然后在Win7系统下,先去看看,当前连接的USB虚拟出来的串口是哪个口 ...
- HTML5的classList API优化对样式名className的操作
//添加一个class elem.classList.add(classname); //删除一个class elem.classList.remove(classname); //判断一个class ...