POJ 3254-Corn Fields

POJ 3254 Corn Fields(状态压缩)代码详解 Corn Fields(POJ 3254) Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 18002 Accepted: 9478 Description Farmer John has purchased a lush new rectangular pasture composed of M... 阅读详情

Corn Fields
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 9051 Accepted: 4804

Description

Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, some of the squares are infertile and can't be planted. Canny FJ knows that the cows dislike eating close to each other, so when choosing which squares to plant, he avoids choosing squares that are adjacent; no two chosen squares share an edge. He has not yet made the final choice as to which squares to plant.

Being a very open-minded man, Farmer John wants to consider all possible options for how to choose the squares for planting. He is so open-minded that he considers choosing no squares as a valid option! Please help Farmer John determine the number of ways he can choose the squares to plant.

Input

Line 1: Two space-separated integers:  M and  N 
Lines 2.. M+1: Line  i+1 describes row  i of the pasture with  N space-separated integers indicating whether a square is fertile (1 for fertile, 0 for infertile)

Output

Line 1: One integer: the number of ways that FJ can choose the squares modulo 100,000,000.

Sample Input

2 3
1 1 1
0 1 0

Sample Output

9

Hint

Number the squares as follows:
1 2 3
  4  

There are four ways to plant only on one squares (1, 2, 3, or 4), three ways to plant on two squares (13, 14, or 34), 1 way to plant on three squares (134), and one way to plant on no squares. 4+3+1+1=9.

Source


小结:

        这是我做的第一道状态压缩dp题目,发现状态压缩dp远没有想象中的那么难嘛!

        看别人代码,一直的感觉是冗长加上繁琐,可能别人也是这么看待我的代码的吧。

        这道题目如果没有一定的剪枝技巧(嘛,虽然是很基础的剪枝技巧),基本可以确定是TLE,最后AC显示出来的时间竟然只有31ms,看来数据还是比较好过的,没有特别坑爹的数据。

        表示不止是状态压缩dp,dp一类的题目感觉都不是靠别人教就能教会的,这还需要自己多做多想,才能运用,所以啦,这里我就只贴出代码啦,啦啦啦....

以下是AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<ctype.h>
using namespace std;
const int m=13;
typedef long long ll;
const int mod=100000000;
int check(int num)
{
    while(num)
    {
        if(num%2==1&&(num/2)%2==1)
        return 0;
        num>>=1;
    }
    return 1;
}
int main()
{
    int row,col,maxn;
    int map[13][13],statue[13];
    ll dp[13][2<<13];
    while(~scanf("%d%d",&row,&col))
    {
        maxn=0;
        memset(dp,0,sizeof(dp));
        memset(map,0,sizeof(map));
        memset(statue,0,sizeof(statue));
        for(int i=1;i<=row;i++)
        for(int j=1;j<=col;j++)
        {
            scanf("%d",&map[i][j]);
            statue[i]<<=1;
            statue[i]=statue[i]|map[i][j];
        }
        for(int i=1;i<=row;i++)
        maxn=max(maxn,statue[i]);
        for(int j=0;j<=maxn;j++)
        {
            if((j|statue[1])==statue[1]&&check(j))
            {
                dp[1][j]++;
            }
        }
        for(int i=2;i<=row;i++)
        for(int j=0;j<=maxn;j++)
        {
            if(!dp[i-1][j])
            continue;
            for(int k=0;k<=maxn;k++)
            {
                if((k|statue[i])!=statue[i]||!check(k)||(k&j)!=0)
                continue;
                dp[i][k]+=dp[i-1][j];
                dp[i][k]%=mod;
            }
        }
        ll ans=0;
        for(int j=0;j<=maxn;j++)
        ans=(ans+dp[row][j])%mod;
        printf("%lld\n",ans);
    }
    return 0;
}



AD2S1210与DSP28335 SPI通信中的GPIO配置陷阱与解决 本文深入剖析了AD2S1210与DSP28335进行SPI通信时,因GPIO输入限定配置不当导致数据整体右移的典型问题。文章指出,错误地将MISO引脚配置为带采样周期的同步模式是根本原因,并提供了将输入选择限制正确设置为异步模式的解决方案。同时,总结了不同应用场景下GPIO输入限定的配置原则,为高速同步通信的稳定实现提供了关键指导。 阅读详情

相关推荐

二阶高通滤波器硬件设计:5种RC到有源方案对比与选型

在传感器前端和音频信号调理中,二阶高通滤波器是抑制直流偏移与低频干扰的关键模块。其设计核心围绕截止频率、品质因数Q、增益与噪声四个指标展开,其中Q值决定滤波器在转折频率附近的响应形状,如Butterworth最大平坦响应需Q=0.707。从纯无源RC电路到引入运放的有源拓扑,演变逻辑在于解决负载效应、提供增益并借助反馈提升Q值。实际工程中,RC级联、VCVS(Sallen-Key)、状态变量及回转器模拟电感等方案各有适用场景:RC电路简单但Q值受限,Sallen-Key单运放即可实现高Q,状态变量适合Q值独

weixin_32770423的博客 98

poj(3254)——Corn Fields

题意: 现在有大小为M*N的方格,然后方格中0代表的是这里不能种植,1代表的是可以,然后每头牛不能和相邻的牛待在一起,然后问你有几种安排牛吃草的方案,注意,没有牛可以吃草也是算一种的。 思路: 今天刚刚学了状压dp,位运算真是巧妙啊。这里我们可以用二进制的数来代表一个状态,首先我们可以先把图用一个十进制数存下来。然后找出所有的可行方案,然后再分别判断每种状态能不能够符合条件就好了。 htt

ACM_hades的梦想之路 561

SigmaStudio进阶技巧:如何用ADAU1701实现60段EQ与防啸叫算法

本文深入探讨了如何在ADAU1701 DSP芯片上实现专业级音频处理系统。通过精密的资源规划与架构设计,详细讲解了构建高达60段参数均衡器(EQ)的有效方法,并集成了移频与自适应陷波双策略的智能防啸叫算法。内容涵盖从SigmaStudio工程优化、算法模块组合到系统联调实战的全流程,旨在帮助中高级开发者充分利用ADAU1701性能,打造稳定、高效的音频处理解决方案。

weixin_28256233的博客 384

POJ - 3254 Corn Fields

poj3254 Corn Fields 题 意:农民farm很多块农田,总体是一个n*m的矩阵。有些农田已经不能耕种了,0代表不能耕种了,1代表能耕种。且种植不能相邻。问你种植的种类,全部都不种也算一种。 输入范围: 1&lt;=N,M&lt;=12 输入样例: 2 3 1 1 1 0 1 0 输出样例: 9 思 路:记录一行所有的可行状态,当前行状态之和上一行有关。 d...

子灬丶逾 148

黑五数据集实战:从消费者行为解码到零售智能决策

零售智能决策依赖对消费者行为的深度理解,其核心在于将结构化字段还原为真实商业动作。本文基于经典Black Friday数据集,系统阐释如何通过字段语义重定义、业务驱动的特征工程、轻量高效模型(如LightGBM)及定制化损失函数,构建可落地的库存预警、流失拦截与动线优化方案。重点融合‘消费人格指纹’与‘生态位稳定性分’两大热词,揭示数据背后的城市引力场、品类竞争网络与决策节奏图谱,为电商、快消及零售从业者提供从数据分析到业务闭环的完整方法论。

weixin_28630185的博客 345

嵌入式Linux开发必备:设备树插件动态加载实战指南(RK356x平台为例)

本文以RK356x平台为例,详细介绍了嵌入式Linux开发中设备树插件的动态加载实战。通过configfs接口,开发者可以在系统运行时动态修改硬件配置,实现外设的即插即用与调试,无需重启设备,极大提升了开发与调试效率。

w7x8y9z的博客 442

poj3254Corn Fields题解

Corn Fields Time Limit:2000MS Memory Limit:65536K Total Submissions:9623 Accepted:5092 Description Farmer John has purchased a lush new rectangular pasture c...

deirlym2014的博客 229

手把手教你为高云DDR3控制器添加物理约束:从位置锁定到参数配置

本文详细介绍了在高云FPGA平台上为DDR3控制器添加物理约束的实战指南,从位置锁定到参数配置。通过解析高云DDR3控制器的架构,提供关键模块的位置约束和参数调优方法,帮助开发者解决时序不稳定、初始化失败等常见问题,实现稳定可靠的DDR3接口。

weixin_33738555的博客 272

Poj - 3254 Corn Fields (状态压缩dp入门第一题(详解

题目大意:农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择,不要忘记考虑!

今天天气不错 1万+

“华为杯”研究生数学建模竞赛2020年-【华为杯】D题:无人机集群协同对抗(附获奖论文和MATLAB代码实现)

1.问题重述摘 要:本文针对非线性约束条件下红蓝双方无人机集群协同对抗的最优规划问题,结合贪婪队形、非线性规划、内点法、蒙特卡洛方法和全联立正交配置有限元法,构建了无人机集群协同对抗推演模型。,构建了。我们综合考虑了,和。首先分析红方在集群约束下的贪婪队形和拦截策略,然后我们基于内点法联合MATLAB和AMPL编程求解蓝方突防的非线性规划解,最后基于蒙特卡洛法对整个蓝方突防过程进行推演,得到突防概率图。通过推演,我们提出了两块的区域作为所求区域,并对蓝方的最优突防策略进行分析。

getusushu的博客 1550

从 SOAUTH2 到系统用户,SAP AS ABAP 里配置 OAuth 2.0 Client 的完整落地思路

SAP OAuth 2.0客户端配置的核心在于建立系统级信任关系。在AS ABAP中,每个OAuth 2.0客户端必须关联一个System类型的用户账号(通过SU01创建),并建议采用业务语义明确的命名规范(如ZBTP_PO_APPROVAL_APP)。关键配置包括:客户端认证方式(推荐SSL证书而非共享密钥)、Token生命周期(默认3600秒)、Scope访问范围,以及根据应用场景选择Authorization Code或SAML 2.0 Bearer等授权模式。项目实践中应避免混合配置不同授权类型,而

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 986

Poj - 3254 - Corn Fields(状压dp)

题目链接:http://poj.org/problem?id=3254 题意:农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择)。 思路:我们可以利用一个二进...

sugarbliss 447

uniapp [安卓苹果App端] - 实现获取请求手机位置权限+开启定位获取经纬度/省市区地址等,检测权限手机定位是否开启并引导用户同意授权,uniApp app端调用本机开启本机定位权限及IP属地

uni-app,手机定位权限,安卓Android,苹果ios,uniapp获取本机位置权限,uni-app获取用户定位数据,uniapp APP获取用户IP属地定位,判断权限,权限被拒绝了怎么办,苹果ios系统无法开启定位,获取定位权限报错,uniapp定位获取省市区,UNI-APP如何开启手机定位功能并获取经纬度,不依赖地图第三方插件组件,打包上架后如何获取,真机运行无法获取定位,安卓和ios权限获取,判断权限检查,正式打包,详细教程,根据获取当前经纬度,再根据经纬度去定位具体省市区,自定义基座打包能成功

🏆 前端领域优质创作者 1万+

【题解】poj 3254 Corn Fields

题目描述 农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地。John打算在牧场上的某几格里种上美味的玉米,供他的奶牛们享用。遗憾的是,有些土地相当贫瘠,不能用来种玉米。并且,奶牛们喜欢独占一块地的感觉,于是John不会选择两块相邻的土地,也就是说,没有哪两块玉米地有公共边。John想知道,如...

C@bMv7GRVt)Q 478

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

poj 3254 Corn Fields 状压dp

Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19399   Accepted: 10189 Description Farmer John has purchased a lush new rectangular pasture composed of M by...

liluoyu_1016的博客 226

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

POJ 3254 Corn Fields 状态压缩(dp)

链接:http://poj.org/problem?id=3254Corn FieldsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 18865 Accepted: 9912DescriptionFarmer John has purchased a lush new rectangular pasture composed o...

SYP___ 280

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

POJ3254 Corn Fields

原题链接http://poj.org/problem?id=3254 POJ 3254 corn fields 状态压缩动态规划

昨天的我现在的未来 341

POJ 3254 Corn Fields

<br />记录状态的DP.<br />每一行的状态有2^12种可能(其中一部分状态是无效的),且与前一行的状态相关,<br />题目要求计算的可以理解为到达最后一行各个有效状态的次数之和。<br />输入1 for fertile, 0 for infertile,为了计算方便进行取反,0 for fertile, 1 for infertile。<br /><br /><br />/*Corn Fields Time Limit: 2000MS Memory Limit: 65536K Tota

mimo9527的专栏 847

POJ-3254 Corn Fields

题目链接: \quad POJ-3254 题目大意: \quad 给一个 N×MN×MN \times M 块土地,111 表示这块土地肥沃,000 表示土地贫瘠;现在只能在肥沃的土地上种玉米,问有多少种种法使得玉米两两不相邻 (相邻指的是上下走右四个方向) ? \quad Tips : 也可以一颗都不种。还要取模。 数据范围: \quad 1≤N,M≤121≤N,M≤121 \l...

XzzF1024的博客 426

poj3254 Corn Fields

poj3254分析这道题算是状态压缩dp的入门题吧,知道状态压缩是个什么套路。题目http://poj.org/problem?id=3254代码#include <cstdio> #include <cstring> #include <algorithm> #include <cmath>using namespace std;const int mod=100000000; int n,m,t

天道酬勤 228

Corn Fields POJ - 3254

Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, s...

weixin_41544329的博客 160

【poj3254】Corn Fields

题目描述 农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择,不要忘记考虑! 输入 第一行:两个整数M和N,用空格隔开。 第2到第M+1行:每行包...

anweiyun4308的博客 126

【poj3254】Corn Fields 状态压缩dp

AC通道:http://vjudge.net/problem/POJ-3254 【题目大意】 农夫约翰购买了一处肥沃的矩形牧场,分成M*N(1<=M<=12; 1<=N<=12)个格子。他想在那里的一些格子中种植美味的玉米。遗憾的是,有些格子区域的土地是贫瘠的,不能耕种。 精明的约翰知道奶牛们进食时不喜欢和别的牛相邻,所以一旦在一个格子中种植玉米,那...

anzhi7214的博客 254
上一篇: UVa 580-Critical Mass
下一篇: UVA 12034-Race
Yuric
博客等级 码龄12年 0粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值