poj3254:http://poj.org/problem?id=3254

题意:给以n*m的方格,方格中有1或者0,在1的地方可以放置一个物品,但是在物品的上下左右不能有不物品,也可以不放,问你最够有多少种放法。

题解:很简单的状态dp。这里先统计数最多能放多少个,然后和棋盘放k的kind那题一样,最后的结果就是第n行各种状态以及放置0到最多的种类之和。其实,这一题,个数那一维是完全可以删除的,只要2维就可以了。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char mp[][];
int dp[][][];
const int N=(<<);
int n,m;
int total;
int s[N],ct[N],num;
int state[];
bool isok(int x){
if(x&(x<<))return false;
return true;
}
int counts(int x){
int ans=;
while(x){
ans+=(x&);
x/=;
}
return ans;
}
void solve(){
num=;
for(int i=;i<(<<m);i++){
if(isok(i)){
++num;
s[num]=i;
ct[num]=counts(i);
}
}
}
void sum(){
total=;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(mp[i][j]=='')
total++;
}
} }
void input(){
int cs=,ans=;
for(int i=;i<=n;i++){
cs=,ans=;
for(int j=m;j>=;j--){
if(mp[i][j]==''){
ans+=cs;
}
cs*=;
}
state[i]=ans;
}
}
int main(){
while(~scanf("%d%d",&n,&m)){
memset(dp,,sizeof(dp));
for(int i=;i<=n;i++){
for(int j=;j<=m;j++)
cin>>mp[i][j];
}
solve();
sum();
input();
for(int i=;i<=num;i++){
if(state[]&s[i])continue;
dp[][i][]=;
}
for(int i=;i<=n;i++){
for(int j=;j<=num;j++){
if(state[i]&s[j])continue;
for(int k=ct[j];k<=total;k++){
for(int g=;g<=num;g++){
if(state[i-]&s[g])continue;
if(s[j]&s[g])continue;
dp[i][j][]+=dp[i-][g][];
dp[i][j][]%=;
}
}
} }
long long as=;
for(int i=;i<=num;i++){
for(int j=;j<=total;j++){
as+=dp[n][i][];
as%=;
}
}
printf("%I64d\n",as%);
}
}

Corn Fields的更多相关文章

  1. POJ 3254. Corn Fields 状态压缩DP (入门级)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9806   Accepted: 5185 Descr ...

  2. 【BZOJ1725】[Usaco2006 Nov]Corn Fields牧场的安排 状压DP

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

  3. poj 3254 Corn Fields

    http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissio ...

  4. Corn Fields——POJ3254状态压缩Dp

    Corn Fields Time Limit: 2000MS Memory Limit: 65536K Description Farmer John has purchased a lush new ...

  5. poj3254 Corn Fields (状压DP)

    http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissio ...

  6. POJ 3254 Corn Fields(状态压缩DP)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4739   Accepted: 2506 Descr ...

  7. 状压DP POJ 3254 Corn Fields

    题目传送门 /* 状态压缩DP:先处理硬性条件即不能种植的,然后处理左右不相邻的, 接着就是相邻两行查询所有可行的种数并累加 写错一个地方差错N久:) 详细解释:http://www.tuicool. ...

  8. POJ 3254 Corn Fields(状压DP)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13732   Accepted: 7216 Desc ...

  9. BZOJ1725: [Usaco2006 Nov]Corn Fields牧场的安排

    1725: [Usaco2006 Nov]Corn Fields牧场的安排 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 400  Solved: 290 ...

  10. [ACM] POJ 3254 Corn Fields(状态压缩)

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8062   Accepted: 4295 Descr ...

随机推荐

  1. 关于GCC的理解——On the understanding of the GCC

    GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的 GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就 ...

  2. shell 获取网关 以及修改ip 启用网卡

    shell 获取网关 以及修改ip 启用网卡 #!/bin/bash #autho freefei #script is a init computer eth #data 2014 10 09 19 ...

  3. python装饰实现线程同步

    import threading def tryfinally(finallyf):   u"returns a decorator that adds try/finally behavi ...

  4. Android 图标上面添加提醒(一)使用Canvas绘制

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在我们开发一些如通讯录.社交等应用或者应用添加新功能模块时,会考虑在对应的图标上加上未读信息的数量,或者是新功能提醒的图标,这样不占太大空间还能达 ...

  5. js原型继承

    原型链: Object(构造函数) object(类型(对象)) var o = {}; alert(typeof o); //结果是object alert(typeof Object); //结果 ...

  6. LINUX启动顺序

    Linux 启动顺序: 1. BIOS自检 (服务器硬件启动的第一步,坑定的啦) 2. 运行系统内核并检测硬件(这个是看系统了,redhat等相关版本是通过/boot/vm进行启动 vmlinuz) ...

  7. web 页面传值方法

    一. 使用QueryString变量    QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数 ...

  8. uap--studio设置文本字体

  9. Android开发手记(27) Java多线程的操作

    Java中常用的有关线程的操作有,判断线程是否启动.线程强制执行.线程休眠.线程中断.线程让步.线程同步等.下面就一一举例. 首先,我们新建一个MyThread类实现Runnable接口.基于此接口进 ...

  10. Tensor神经网络进行知识库推理

    本文是我关于论文<Reasoning With Neural Tensor Networks for Knowledge Base Completion>的学习笔记. 一.算法简介 网络的 ...