poj 3254 Corn Fields(状压dp)

PLUS模型土地利用变化模拟使用简介 因子包括自然因子如社会因子,通过计算整理得到新图层,并以tif文件输出到驱动因子的文件夹里,驱动因子文件夹里存放的是tif文件格式。线性回归使用提供的所有的LULC资源数据,可以选择往后预测的年数,选择好数据之后,可以得出预测的每一年的每一用地类型面积数据。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。 阅读详情

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.

其实思路是很好想的,将每一行的情况用一个二进制数表示,然后按列进行dp就可以了,可以先把每一行的情况处理出来存入一个数组中,然后用位运算就可以判断了……看题解的时候真的觉得位运算减轻工作量啊……

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdio>
using namespace std;
const double eps = 1e-6;
const double pi = acos(-1.0);
const int INF = 0x3f3f3f3f;
#define ll long long
#define CL(a) memset(a,0,sizeof(a))
#define maxn 35
#define mod 100000000

int n,m;
int dp[1<<13][13];
int g[20][20];
int a[20];

int check(int x,int s)
{
    if((a[x]&s)!=s) return 0;
    if((s&(s<<1))!=0||(s&(s>>1))!=0) return 0;
    return 1;
}

void solve()
{
    int ans=0;
    dp[0][0]=1;
    for(int i=1;i<=m;i++)
    {
        for(int s=0;s<(1<<n);s++)
        {
            if(!check(i,s)) continue;

            for(int ss=0;ss<(1<<n);ss++)
            {
                if((s&ss)!=0) continue;
                dp[s][i]=(dp[s][i]+dp[ss][i-1])%mod;
            }
            ans=(ans+dp[s][m])%mod;
        }
    }
    cout<<ans<<endl;
}

int main ()
{
    cin>>m>>n;
    for(int i=1;i<=m;i++)
    {
        a[i]=0;
        for(int j=0;j<n;j++)
        {
            int x;
            cin>>x;
            a[i]=(a[i]<<1)+x;
        }
    }

    solve();
    return 0;
}
【Bug已解决】Claude Team Plan 购买席位报错 Payment failed 解决方案 方案适用场景推荐指数检查账单历史状态排查的第一步⭐⭐⭐⭐⭐更换支付方式类型快速尝试是否能绕开问题⭐⭐⭐联系官方支持团队最终解决问题的正规渠道⭐⭐⭐⭐⭐临时过渡方案紧急用人需求的应急处理⭐⭐⭐关注官方修复进度确认属于系统性缺陷的场景⭐⭐⭐⭐Claude Team Plan 增购席位报的问题,社区反馈和实际排查表明很大概率属于平台计费系统在处理按比例分摊费用这类复杂计算链路时的系统性缺陷,而不是用户自身的支付信息填写有误。先排除自身账单历史是否存在异常。 阅读详情

相关推荐

嵌入式开发实战:如何用cJSON库在STM32上实现轻量级JSON通信(附完整代码)

本文详细介绍了如何在STM32嵌入式系统中使用cJSON库实现高效的JSON通信方案。针对嵌入式环境的内存限制,提供了内存优化策略、cJSON库的深度定制方法以及完整的通信流程实现代码,帮助开发者解决JSON解析效率低下和跨平台兼容性等核心挑战。

star5的专栏 471

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

SPSSAU 中介效应分析实战:Bootstrap 95%置信区间解读的3个关键步骤

本文详细解析了SPSSAU中介效应分析中Bootstrap 95%置信区间的解读方法,涵盖三种典型场景的判别标准与应对策略。通过实战操作指南,帮助研究者准确判断中介效应显著性,特别针对边界模糊和小样本情况提供专业建议,提升统计分析结果的可靠性。

weixin_33691817的博客 497

【POJ 3254】 Corn Fields(状压DP)

【POJ 3254】 Corn Fields(状压DP) Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10891   Accepted: 5705 Description Farmer John has purchase

ACMer' 1557

【接口自动化测试】cookie绕过验证码自动登录?(保持登录状态)

在编写接口自动化测试用例或其他脚本的过程中,经常会遇到需要绕过用户名/密码或验证码登录,去请求接口的情况,一是因为有时验证码会比较复杂,比如有些图形验证码,难以通过接口的方式去处理;再者,每次请求接口前如果都需要先去登录一次,这样不仅效率低,还耗费资源。 有些网站是使用cookie辨别用户身份的,此时我们便可以先登录一次,拿到登录成功后的cookie,后续请求时在请求头中加入该cookie,便可保持登录状态直接请求。

weixin_67553250的博客 2066

【亲测好用】解决Windows系统Vscode终端无法使用yarn报错无法加载文件

我明明使用`npm i -g yarn ` 安装成功了 甚至在文件夹处 CMD 也可以看到yarn 的版本 甚至在Vscode中又重新安装了一遍yarn 为什么还是报错呢?

Aeporn的博客 888

[poj 3254]Corn Fields[状压DP]

题意: 一块玉米地,有的位置不能种草,种草的小方格不能有临边. 问有多少种方案. 思路: 状压DP. dp[ i ][ j ] 表示从上到下处理到第 i 行时, 该行状态为 j 的方案数. 下一行某状态的方案数就是上一行所有合理状态的方案数之和. 注意初始化和最后一行的处理. #include #include using namespace std; const int MAX

以中有足乐者... 993

多视图学习 (Multi-View Learning)

多视角/多视图学习(Multi-view learning)是陶大成提出的一个研究方向。我们都知道,在机器学习中样本可以用不同的特征(如图片可以用LBP、SIFT等特征)来表示,或者从不同的角度进行观察(如从前后左右观察一个对象),甚至是采用不同的传感器来观测(如RGB摄像头,Depth摄像头),这些不同的观测手段、角度或特征在多视角学习中称为“视角”。多视角学习通过对不同的视角进行统一分析和研究,希望能够得到更好的分类或聚类等等的效果。

CarpeDiem 3万+

状压dp Poj - 3254 Corn Fields

状压dp 题意 有一块 m 行 n 列的农场地形,要在 ‘1’ 上养牛,并且相邻上下左右不能同时养牛。 问:有多少种方案来养牛? 思路 先看第一行样例 1 1 1,肯定不能相邻养牛,所以有以下几种情况 0 0 0 0 0 0 1 1 0 1 0 2 1 0 0 4 1 0 1 5 当加上第二行的时候,又分为两种情况,每种情况与上一行结合判断是否可行 得出状态转移方程:dp [ i ] [ state[ j ] ] = dp [ i - 1 ] [ state [ k1 ] ]

HappyCode 331

Spring AI提示词模板应用

本文介绍了使用SpringAI提示词模板的配置方法,主要步骤包括:1)在JDK17和SpringBoot3.4.4环境下引入spring-ai-alibaba1.0.0.2依赖;2)配置application.yml文件;3)创建测试控制器类处理提示词模板(.st文件);4)通过模板变量动态生成AI回复内容。演示了如何通过@RequestParam设置默认参数,实现无需前端传参即可测试AI回复功能,最终完成了一个SpringAI提示词模板的应用Demo。

wjianwei666的专栏 196

2026年北京君正数字IC笔试试卷带答案

本文摘要:该文档是一份数字IC设计相关的考试试题,包含单选题、多选题、波形分析题和代码设计题。内容涵盖时序约束、半导体工艺、状态机设计、逻辑综合、异步FIFO设计等知识点。试题解析详细,重点考察数字电路基础、时序分析和Verilog代码实现能力。典型题目包括多周期路径设置、Moore/Mealy状态机区别、同步复位与异步复位特性、RISC-V架构特点等,并提供了异步FIFO的Verilog实现参考代码。(149字)

Open 112

poj 3254 Corn Fields 状压DP

传送门:poj 3254 Corn Fields题目大意给出一个M*N的矩阵,元素为0表示这个地方不能种玉米,为1表示这个地方能种玉米,现在规定所种的玉米不能相邻,即每行或者没列不能有相邻的玉米,问一共有多少种种植方法。举个例子:2 3 1 1 1 0 1 0 表示2*3的玉米地,现在一共有多少种种植方法呢? 答案:种0个玉米(算一个合法方案)+种1个玉米(4)+种2个玉米(3)+种3个玉米(

woshinannan的专栏 494

MATLAB基础应用精讲-【数模应用】信用评分模型(附R语言和python代码实现)

信用评分模型是近年来兴起的一种为了保障银行和其他金融部门的金融安全而设立的一种关于人身金融权限的划定模型。该模型指根据客户的信用历史资料,利用一定的信用评分模型,得到不同等级的信用分数,根据客户的信用分数,来决定客户所可以持有的金额权限,从而保证还款等业务的安全性。而随着在现代社会和公司中,贷款,信用卡的作用日渐突出,信用评分模型的发展前景不可估量。信贷风险是指借款人因偿还贷款或履行合同承诺而破产而产生损失的可能性。传统上,它与贷款人无法偿还所欠利息和本金、影响现金流和增加装配成本所产生的风险有关。

qq_36130719的博客 364

[poj3254]Corn Fields_状压dp

Corn Fields poj3254     题目大意:给你一个n*m的地,每一块地可以种或不种,两块种过的地不能挨着,可以一块都不种,问所有的种地方案数。     注释:读入用0和1,1<=n,m<=12.       想法:这题和炮兵阵地特别像,比炮兵更简单。我们再度入的时候直接处理出当前行的地的不可种的情况。预处理出一行如果都能种的话所可能的方案数。此处需要满足...

dianan0938的博客 139

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

POJ - 3254 Corn Fields(状压dp)

题目链接:点击查看 题目大意:给出一个n*m的地图,有些位置不能放牧,然后放牧的条件是相邻两个格子不允许同时使用,问可行方案有几种 题目分析:因为给出的数据范围很小,并且放牧的状态是放或者不放,很容易用状态0或1来表示,由此会往状态压缩方面去思考,这是一个很中规中矩的状压dp,给出一个矩形然后从第一行开始向下转移状态,和铺瓷砖那个题目的大体思路是一致的,都是先对第一行进行特判,然后枚举第一行,...

Falcon的博客 484

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

POJ 3254 Corn Fields [状压DP]

Description给你一个地图,叫你放东西。 0表示不能放,1表示可以放。 东西不能相邻放,问有多少种放法?= =一开始黄队长和我说是状压DP。受前几天最优配对问题的影响,以为把所有情况状态压缩。一看数据2^(12*12)肯定是伤不起的。然后就GG。不知道怎么做于是请教黄队长。 原来是每一行压缩。Algorithm于是得到状态 dp[i][j] 表示第i行排列成j的总方案数 状态转移

more time 163

POJ 3254 Corn Fields 状压DP

Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6321 Accepted: 3361DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) s

Monica 559

POJ 3254 - Corn Fields [状压DP]

这是一个比较简单的状压DP问题。 状压DP即是利用位运算来进行状态压缩的动态规划。 一些动态规划的状态信息过多,需要高维的数组进行存贮和转移。这个时候,一些满足可以用低进制来存贮(主要为2进制,但不限定于),再通过位运算的帮助进行状态转移,这就是状态压缩动态规划。 这题的基本题意是,有一个n行m列的矩阵,矩阵里的元素由0和1组成,1代表肥沃的土地可以放牛,0则不可以,并且相邻的土地不

JeffCsoul 492

POJ3254,Corn Fields(状压DP)

题意:农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以种植作物的(用1标记),其他格子则不能种植(用0标记),并且要求相邻格子不能同时都有种植作物。现在输入数据给出这块地的大小及可否种植的情况,求该农夫有多少种种植方案可以选择(注意:任何格子都不种植也是一种选择,不要忘记考虑!) 状压DP入门题,有个博客讲得很详细: https://www.cnblogs.com/real-l/p...

shamansi99的博客 234

POJ3254 Corn Fields 【状压DP入门】

【题目大意】 读入两个数m,n;然后下面一个m*n的矩形,由0或1组成。 如果该格为0,则表示该处的土地不肥沃,不能放牛。 如果该格为1,则表示该处的土地肥沃,可以放牛。 求出最后Farmer John放牛的方案数。 【解题思路】 观察到数据规模只有12,但是要求取模1e8,所以优先考虑状态压缩DP 由于m,n都是随读入变化,全部考虑很麻烦,所以我们固定列,只考虑行。 设dp[i]

Lannister_Stark的博客 383

Poj3254 Corn Fields (状压Dp)

poj一道状压Dp的例题

Build 324

POJ 3254 Corn Fields [状压DP]【动态规划】

题目链接 : http://poj.org/problem?id=3254 —————————————————.Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12927 Accepted: 6766 DescriptionFarmer John has purchased

Tabris的博客 400

poj3254 Corn Fields(状压dp)

题目链接: http://poj.org/problem?id=3254 题目大意: 给m*n的玉米地,里面可以放牧,1的位置可以放牧,0的位置不行。相邻的位置不能放牧。问一共有多少种放牧的方法。 范围: n,m 思路: 状压dp。 可以为每一个行记录一个状态dp[i][state],表示在第i行的状态state是否满足。 所以在当前的第i行,我们可以通过判断各个状态是否与前

hahahaha 579

poj 3254 Corn Fields 状压dp入门题

题目:点击打开链接 题意:一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧,可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方格不能同时放牛,即牛与牛不能相邻。问有多少种放牛方案(一头牛都不放也是一种方案) 分析:状压dp的入门题,这题就是把每一行等效成一个数,由于是由01表示的,所以很容易想到整行用一个二进制来等价,因为1表示可以选,0表示不可以选,那么这

01的世界 471

POJ 3254 Corn Fields 状压dp入门

Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 15374 Accepted: 8090 DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M

ywq12138的博客 316

【状压dp】 poj 3254 Corn Fields

题意:给m*n的场地,1代表可选,0代表不可选,选择的场地不能有边相邻(即不能上下左右四个方向),求选择的方案数,一个也不选也是一种选择方法。 思路:dp[i][j]代表考虑了前i行,第i行状态为j的方案数。枚举本行的可行状态,枚举上一行的状态 参考博客 注意:位运算不加括号很容易出错! 注意与P1896 互不侵犯对比 区别1:P1896要求一定要放置完所有的国王,由于不知道在哪一...

iroy33的博客 241

POJ 3254 Corn Fields 状压dp

题目:http://poj.org/problem?id=3254题意:有一块n*m的田,其中为1的代表可以在这里放一只牛,对于给定的田,有多少种不同的放法,使任意两只牛不相邻思路:定义dp[i][j]dp[i][j]为第ii行放法为stu[j]stu[j]时,满足条件的总放法有多少种。首先算出第一行的所有满足条件的方法,然后往下依次递推,详见注释#include <iostream> #inclu

弱智就要多努力 515
上一篇: poj 2441 Arrange the Bulls(状压dp)
下一篇: poj 2836 Rectangular Covering (状压dp)
ciel_s
博客等级 码龄11年 18粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值