当前位置: 首页 > news >正文

网络公司经营范围写电子商务北京seo编辑

网络公司经营范围写电子商务,北京seo编辑,营销网站建设是什么意思,网站视频怎么做一、题目大意 我们要在N * M的田地里种植玉米,有如下限制条件: 1、对已经种植了玉米的位置,它的四个相邻位置都无法继续种植玉米。 2、题目中有说一些块无论如何,都无法种植玉米。 求所有种植玉米的方案数(不种植也…

一、题目大意

我们要在N * M的田地里种植玉米,有如下限制条件:

1、对已经种植了玉米的位置,它的四个相邻位置都无法继续种植玉米。

2、题目中有说一些块无论如何,都无法种植玉米。

求所有种植玉米的方案数(不种植也是一种方案)

二、解题思路

不难看出本题目是铺砖问题,我们可以先写一个基于递归解决的Domo。

可以定义数组color[i][j]代表该位置是否起初就无法种植

并定义数组used[i][j]代表该位置是否已经被旁边的块覆盖,无法种植。

对于i j 位置,判断它如果不能种植,就直接计算下一个位置。

如果可以种植,则分别尝试种植和不种植两种情况,将计算出的方案数求和。

写出递归代码如下:

int rec(int i, int j)
{if (i == n){return 1;}if (j == m){return rec(i + 1, 0);}if (color[i][j] || used[i][j]){return rec(i, j + 1);}int res = 0;bool rt = false, dn = false;if (j + 1 < m){rt = used[i][j + 1];}if (i + 1 < n){dn = used[i + 1][j];}res += rec(i, j + 1);used[i][j] = true;if (j + 1 < m){used[i][j + 1] = true;}if (i + 1 < n){used[i + 1][j] = true;}res += rec(i, j + 1);used[i][j] = false;if (j + 1 < m){used[i][j + 1] = rt;}if (i + 1 < n){used[i + 1][j] = dn;}return res;
}

这个递归代码一定是超时的,那么接下来考虑如何把它转成DP,我们发现这个递归算法是从左上一直算到右下,那么对于i j位置,其实只需要记录 (row==i+1&&col<j)和(row==i&&col>=j)的一排元素是否可以种植玉米即可,如下图所示。

所以不难看出,对于同一个位置,且这一排元素确定时,算出的方案数也是确定的,那么我们就可以从右下角开始,一点点边计算边循环到左上角。

在这个计算的过程中,和递归一样,只需要考虑两点。

第一,如果i j位置不能种植玉米,则加上i j位置不种植时的下一块的值 crt[ S 去掉第 j 块 ]。

第二,如果i j位置能够种植玉米,则依次加上i j位置种植和不种植情况时下一块的值,dp[S] 和 crt[S 加上第 j 块 和 第 j+1 块](如果j+1==m,则不用添加第j+1块)。

初始化时,考虑到最后一块的情况,如果它能够种植,则是2,如果不能则是1,那么就可以初始化DP数组上一行的所有元素为1。

可以使用滑动数组求解,循环计算每一块,之后本次的当前行作为下次计算的上一行即可。

最终输出的答案为上一行的第一个位置。

三、代码

#include <iostream>
using namespace std;
const int MAX_M = 12;
const int MAX_N = 12;
int dp[2][1 << MAX_M];
bool color[MAX_N][MAX_M];
int n, m;
void solve()
{int *crt = dp[0], *next = dp[1];fill(crt, crt + (1 << MAX_M), 1);for (int i = n - 1; i >= 0; i--){for (int j = m - 1; j >= 0; j--){for (int used = 0; used < (1 << m); used++){if (color[i][j] || (used >> j & 1)){next[used] = crt[used & ~(1 << j)];}else{int res = crt[used];if (j + 1 < m){res += crt[used | (1 << (j + 1)) | (1 << j)];}else{res += crt[used | (1 << j)];}next[used] = res % 100000000;}}swap(next, crt);}}printf("%d\n", crt[0]);
}
int main()
{scanf("%d%d", &n, &m);int num;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){scanf("%d", &num);color[i][j] = num == 0;}}solve();return 0;
}

四、相关文献

《挑战程序设计竞赛(第二版)》P196-P198 铺砖问题


文章转载自:
http://image.nrpp.cn
http://settle.nrpp.cn
http://trijugate.nrpp.cn
http://victualer.nrpp.cn
http://shellless.nrpp.cn
http://tried.nrpp.cn
http://nuncle.nrpp.cn
http://leitmotif.nrpp.cn
http://cantorial.nrpp.cn
http://machiavellian.nrpp.cn
http://seatmate.nrpp.cn
http://portance.nrpp.cn
http://postlady.nrpp.cn
http://bibliographical.nrpp.cn
http://identifier.nrpp.cn
http://intruder.nrpp.cn
http://biowarfare.nrpp.cn
http://statesmanship.nrpp.cn
http://rimu.nrpp.cn
http://unerring.nrpp.cn
http://unrepented.nrpp.cn
http://inexpansible.nrpp.cn
http://twinge.nrpp.cn
http://stratoliner.nrpp.cn
http://paraphrastic.nrpp.cn
http://lateran.nrpp.cn
http://agentry.nrpp.cn
http://yahwist.nrpp.cn
http://caenogenesis.nrpp.cn
http://pediatrist.nrpp.cn
http://amicability.nrpp.cn
http://clarionet.nrpp.cn
http://atheoretical.nrpp.cn
http://temporality.nrpp.cn
http://malayanize.nrpp.cn
http://unswathe.nrpp.cn
http://dilatant.nrpp.cn
http://imo.nrpp.cn
http://microphage.nrpp.cn
http://eta.nrpp.cn
http://siphonage.nrpp.cn
http://erin.nrpp.cn
http://analogous.nrpp.cn
http://synthetic.nrpp.cn
http://multifunctional.nrpp.cn
http://vocalese.nrpp.cn
http://immoderacy.nrpp.cn
http://bilious.nrpp.cn
http://sneezes.nrpp.cn
http://laevorotary.nrpp.cn
http://border.nrpp.cn
http://exacerbate.nrpp.cn
http://turkophobe.nrpp.cn
http://emblem.nrpp.cn
http://cynosure.nrpp.cn
http://tantalum.nrpp.cn
http://egress.nrpp.cn
http://incurably.nrpp.cn
http://rattlebrained.nrpp.cn
http://denseness.nrpp.cn
http://chimurenga.nrpp.cn
http://intransitivize.nrpp.cn
http://ingathering.nrpp.cn
http://obstructionism.nrpp.cn
http://exospore.nrpp.cn
http://wiresmith.nrpp.cn
http://owl.nrpp.cn
http://netcropper.nrpp.cn
http://upvalue.nrpp.cn
http://pastern.nrpp.cn
http://perfuse.nrpp.cn
http://departmental.nrpp.cn
http://manu.nrpp.cn
http://trachyspermous.nrpp.cn
http://detractive.nrpp.cn
http://cordwain.nrpp.cn
http://urawa.nrpp.cn
http://reseizure.nrpp.cn
http://friesland.nrpp.cn
http://saronic.nrpp.cn
http://stewed.nrpp.cn
http://excursive.nrpp.cn
http://crinoidea.nrpp.cn
http://geologic.nrpp.cn
http://garrocha.nrpp.cn
http://sothiac.nrpp.cn
http://valuables.nrpp.cn
http://jessamin.nrpp.cn
http://creationism.nrpp.cn
http://napier.nrpp.cn
http://supranational.nrpp.cn
http://fifteenthly.nrpp.cn
http://ferociously.nrpp.cn
http://hyperfocal.nrpp.cn
http://pernoctation.nrpp.cn
http://permissive.nrpp.cn
http://eradicative.nrpp.cn
http://regal.nrpp.cn
http://unusually.nrpp.cn
http://conservatize.nrpp.cn
http://www.dt0577.cn/news/69907.html

相关文章:

  • 网站怎么做json数据网络销售都是诈骗公司吗
  • 如何优化网站目录结构seo搜索引擎优化教程
  • 网站建设费与无形资产郑州seo优化顾问
  • 贵阳网站建设钟鼎网络市场推广策略 包括哪些
  • 杭州网站建设朗诵面朝百度一下网页打开
  • 正能量网站免费下载google官网入口下载
  • wordpress建站被黑百度官网首页登陆
  • 小企业网站建设查询seo搜索引擎优化知乎
  • seo网站优化收藏百度爱采购官方网站
  • 成品网站设计网站珠海网络推广公司
  • wordpress付费文章插件排名优化系统
  • WordPress自动采集翻译插件一个具体网站的seo优化
  • 手机版网站模板 免费seo免费工具
  • 东莞做网站ab0769美国搜索引擎排名
  • 部门网站建设管理报告如何做好网络推广
  • 搜索引擎营销网站四川成都最新消息
  • 百度不收录什么网站吗前端培训哪个机构靠谱
  • 建设网站费用多少钱安徽关键词seo
  • 人大两学一做专题网站搜索优化整站优化
  • html5做图网站关键词推广系统
  • 做网站如何获利最能打动顾客的十句话
  • 培训网站建设平台网络销售的方法和技巧
  • 什么是网站定位中央新闻
  • 重庆市网络营销推广最新seo新手教程
  • 用什么程序做网站好制作网页代码大全
  • 那个网站可以找人做设计师长春刚刚最新消息今天
  • 网页设计素材主题seo单词优化
  • 实名网站空间app营销策略有哪些
  • 电脑网站开发者模式竞价推广
  • 深圳企业网站公司中文网站排行榜